create-snapify-app 0.0.0-stage → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +24 -0
- package/README.md +55 -2
- package/bin/create-snapify-app.mjs +174 -0
- package/lib/args.mjs +59 -0
- package/lib/copy.mjs +44 -0
- package/lib/env.mjs +84 -0
- package/lib/prompt.mjs +63 -0
- package/package.json +33 -4
- package/template/.env.example +79 -0
- package/template/.github/workflows/ci.yml +23 -0
- package/template/.github/workflows/deploy.yml +26 -0
- package/template/.github/workflows/ping.yml +8 -0
- package/template/.github/workflows/release.yml +67 -0
- package/template/.snapify-install.json +5 -0
- package/template/CHANGELOG.md +28 -0
- package/template/LICENSE +14 -0
- package/template/README.md +287 -0
- package/template/administrator.html +23 -0
- package/template/apps/client/src/App.tsx +765 -0
- package/template/apps/client/src/auth.css +400 -0
- package/template/apps/client/src/lib/api.ts +22 -0
- package/template/apps/client/src/main.tsx +20 -0
- package/template/apps/community/src/App.tsx +592 -0
- package/template/apps/community/src/main.tsx +20 -0
- package/template/apps/community/src/styles.css +24 -0
- package/template/apps/developers/src/App.tsx +643 -0
- package/template/apps/developers/src/main.tsx +17 -0
- package/template/apps/developers/src/pages.tsx +1587 -0
- package/template/apps/developers/src/styles.css +98 -0
- package/template/apps/developers/src/ui.tsx +179 -0
- package/template/apps/landing/src/App.tsx +598 -0
- package/template/apps/landing/src/LegalPages.tsx +158 -0
- package/template/apps/landing/src/OrderPage.tsx +381 -0
- package/template/apps/landing/src/SeoPages.tsx +923 -0
- package/template/apps/landing/src/copy.ts +195 -0
- package/template/apps/landing/src/main.tsx +20 -0
- package/template/apps/landing/src/styles.css +803 -0
- package/template/apps/landing/src/types.ts +19 -0
- package/template/apps/marketplace/src/App.tsx +1229 -0
- package/template/apps/marketplace/src/developer/DeveloperApp.tsx +1266 -0
- package/template/apps/marketplace/src/main.tsx +20 -0
- package/template/apps/marketplace/src/styles.css +1001 -0
- package/template/apps/shared/AuthContext.tsx +65 -0
- package/template/apps/shared/Logo.tsx +33 -0
- package/template/apps/shared/api.ts +47 -0
- package/template/apps/shared/ui.tsx +128 -0
- package/template/apps/superadmin/src/App.tsx +1264 -0
- package/template/apps/superadmin/src/lib/api.ts +20 -0
- package/template/apps/superadmin/src/lib/hooks.ts +20 -0
- package/template/apps/superadmin/src/main.tsx +16 -0
- package/template/apps/superadmin/src/pages/ClientsPage.tsx +185 -0
- package/template/apps/superadmin/src/pages/InvoicesPage.tsx +157 -0
- package/template/apps/superadmin/src/pages/NewsletterPage.tsx +212 -0
- package/template/apps/superadmin/src/pages/OrdersPage.tsx +195 -0
- package/template/apps/superadmin/src/pages/PaymentsPage.tsx +150 -0
- package/template/apps/superadmin/src/pages/PayoutsPage.tsx +133 -0
- package/template/apps/superadmin/src/pages/PublishersPage.tsx +151 -0
- package/template/apps/superadmin/src/pages/SeoControlPage.tsx +692 -0
- package/template/apps/superadmin/src/pages/SettingsPage.tsx +199 -0
- package/template/apps/superadmin/src/pages/SystemPage.tsx +109 -0
- package/template/apps/superadmin/src/pages/TicketsPage.tsx +201 -0
- package/template/apps/superadmin/src/pages/UsersPage.tsx +167 -0
- package/template/client.html +21 -0
- package/template/community/hamdiayari/akhbar/README.md +23 -0
- package/template/community/hamdiayari/akhbar/screenshot.jpg +0 -0
- package/template/community/hamdiayari/akhbar/snapify.theme.json +76 -0
- package/template/community/hamdiayari/akhbar/src/Brand.tsx +26 -0
- package/template/community/hamdiayari/akhbar/src/Footer.tsx +182 -0
- package/template/community/hamdiayari/akhbar/src/Header.tsx +191 -0
- package/template/community/hamdiayari/akhbar/src/Layout.tsx +49 -0
- package/template/community/hamdiayari/akhbar/src/Social.tsx +33 -0
- package/template/community/hamdiayari/akhbar/src/Ticker.tsx +86 -0
- package/template/community/hamdiayari/akhbar/src/Views.tsx +285 -0
- package/template/community/hamdiayari/akhbar/src/blocks/CollectionBlocks.tsx +672 -0
- package/template/community/hamdiayari/akhbar/src/blocks/ContentBlocks.tsx +305 -0
- package/template/community/hamdiayari/akhbar/src/blocks/ConversionBlocks.tsx +569 -0
- package/template/community/hamdiayari/akhbar/src/blocks/HeaderBlocks.tsx +287 -0
- package/template/community/hamdiayari/akhbar/src/index.tsx +51 -0
- package/template/community/hamdiayari/akhbar/src/kit.tsx +357 -0
- package/template/community/hamdiayari/akhbar/src/site.ts +96 -0
- package/template/community/hamdiayari/akhbar/src/styles.css +566 -0
- package/template/community/hamdiayari/akhbar-actualites/README.md +28 -0
- package/template/community/hamdiayari/akhbar-actualites/screenshot.jpg +0 -0
- package/template/community/hamdiayari/akhbar-actualites/snapify.module.json +107 -0
- package/template/community/hamdiayari/akhbar-actualites/src/admin/AudiencePage.tsx +185 -0
- package/template/community/hamdiayari/akhbar-actualites/src/admin/index.tsx +11 -0
- package/template/community/hamdiayari/akhbar-actualites/src/public/Archive.tsx +142 -0
- package/template/community/hamdiayari/akhbar-actualites/src/public/cards.tsx +152 -0
- package/template/community/hamdiayari/akhbar-actualites/src/public/index.tsx +71 -0
- package/template/community/hamdiayari/akhbar-actualites/src/public/posts.ts +103 -0
- package/template/community/hamdiayari/akhbar-actualites/src/public/styles.css +568 -0
- package/template/community/hamdiayari/akhbar-actualites/src/public/widgets.tsx +226 -0
- package/template/community/hamdiayari/akhbar-actualites/src/server.ts +119 -0
- package/template/community/hamdiayari/akhbar-actualites/src/types.ts +25 -0
- package/template/community/hamdiayari/akhbar-urgent/README.md +36 -0
- package/template/community/hamdiayari/akhbar-urgent/screenshot.jpg +0 -0
- package/template/community/hamdiayari/akhbar-urgent/snapify.module.json +64 -0
- package/template/community/hamdiayari/akhbar-urgent/src/admin/FlashesPage.tsx +229 -0
- package/template/community/hamdiayari/akhbar-urgent/src/admin/index.tsx +11 -0
- package/template/community/hamdiayari/akhbar-urgent/src/public/Ticker.tsx +81 -0
- package/template/community/hamdiayari/akhbar-urgent/src/public/index.tsx +63 -0
- package/template/community/hamdiayari/akhbar-urgent/src/public/styles.css +142 -0
- package/template/community/hamdiayari/akhbar-urgent/src/server.ts +101 -0
- package/template/community/hamdiayari/akhbar-urgent/src/types.ts +35 -0
- package/template/community.html +21 -0
- package/template/developers.html +24 -0
- package/template/docker-compose.db.yml +24 -0
- package/template/docs/BACKOFFICE_SNAPIFY.md +130 -0
- package/template/docs/CI_CD.md +66 -0
- package/template/docs/MODULES.md +346 -0
- package/template/docs/PLATFORM_DEPLOY.md +54 -0
- package/template/docs/logo.svg +10 -0
- package/template/drizzle/0000_init.sql +147 -0
- package/template/drizzle/0001_page_project.sql +5 -0
- package/template/drizzle/0002_modules.sql +23 -0
- package/template/drizzle/0003_themes.sql +4 -0
- package/template/drizzle/0004_security.sql +82 -0
- package/template/drizzle/0005_module_records.sql +16 -0
- package/template/drizzle/0006_avatars.sql +4 -0
- package/template/drizzle/0007_platform.sql +264 -0
- package/template/drizzle/0008_mp_validation.sql +3 -0
- package/template/drizzle/0009_saas_ops.sql +77 -0
- package/template/drizzle/0010_cms_chrome.sql +13 -0
- package/template/drizzle/0011_client_portal.sql +26 -0
- package/template/drizzle/meta/0000_snapshot.json +998 -0
- package/template/drizzle/meta/0001_snapshot.json +1004 -0
- package/template/drizzle/meta/_journal.json +90 -0
- package/template/drizzle.config.ts +16 -0
- package/template/ecosystem.snapify.cjs +24 -0
- package/template/for.html +1 -0
- package/template/index.html +29 -0
- package/template/landing.html +37 -0
- package/template/marketplace/catalog.json +373 -0
- package/template/marketplace/gallery/hamdiayari.preveris/01-home.jpg +0 -0
- package/template/marketplace/gallery/hamdiayari.recaptcha/01-reglages.jpg +0 -0
- package/template/marketplace/gallery/hamdiayari.recaptcha/02-logo.jpg +0 -0
- package/template/marketplace/gallery/novalabs.ai-articles/01-generer.jpg +0 -0
- package/template/marketplace/gallery/novalabs.ai-articles/02-fournisseur-ia.jpg +0 -0
- package/template/marketplace/gallery/novalabs.calendar/01-agenda-site.jpg +0 -0
- package/template/marketplace/gallery/novalabs.calendar/02-evenements-admin.jpg +0 -0
- package/template/marketplace/gallery/novalabs.calendar/03-reglages.jpg +0 -0
- package/template/marketplace/screenshots/hamdiayari.preveris-1.0.6.jpg +0 -0
- package/template/marketplace/screenshots/hamdiayari.recaptcha-1.0.0.jpg +0 -0
- package/template/marketplace/screenshots/hamdiayari.wp-seo-migrator-1.1.1.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.ai-articles-1.0.1.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.ai-chat-1.0.1.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.calendar-1.0.1.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.cart-1.0.0.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.checkout-1.0.0.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.customers-1.1.0.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.dogga-1.0.0.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.mahdia-1.0.0.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.shop-1.0.0.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.sidibou-1.0.0.jpg +0 -0
- package/template/marketplace/screenshots/novalabs.whatsapp-1.0.1.jpg +0 -0
- package/template/marketplace.html +21 -0
- package/template/metadata.json +7 -0
- package/template/modules/ai-articles/screenshot.jpg +0 -0
- package/template/modules/ai-articles/snapify.module.json +74 -0
- package/template/modules/ai-articles/src/admin/ArticlesPage.tsx +162 -0
- package/template/modules/ai-articles/src/admin/GeneratePage.tsx +118 -0
- package/template/modules/ai-articles/src/admin/index.tsx +12 -0
- package/template/modules/ai-articles/src/public/index.tsx +119 -0
- package/template/modules/ai-articles/src/server.ts +287 -0
- package/template/modules/ai-articles/src/types.ts +30 -0
- package/template/modules/ai-chat/screenshot.jpg +0 -0
- package/template/modules/ai-chat/snapify.module.json +217 -0
- package/template/modules/ai-chat/src/public.tsx +198 -0
- package/template/modules/ai-chat/src/server.ts +142 -0
- package/template/modules/ai-theme-studio/README.md +15 -0
- package/template/modules/ai-theme-studio/screenshot.jpg +0 -0
- package/template/modules/ai-theme-studio/snapify.module.json +175 -0
- package/template/modules/ai-theme-studio/src/admin/HistoryPage.tsx +91 -0
- package/template/modules/ai-theme-studio/src/admin/StudioPage.tsx +414 -0
- package/template/modules/ai-theme-studio/src/admin/index.tsx +11 -0
- package/template/modules/ai-theme-studio/src/lib/images.ts +240 -0
- package/template/modules/ai-theme-studio/src/lib/llm.ts +123 -0
- package/template/modules/ai-theme-studio/src/lib/normalize.ts +714 -0
- package/template/modules/ai-theme-studio/src/lib/prompts.ts +198 -0
- package/template/modules/ai-theme-studio/src/server.ts +137 -0
- package/template/modules/ai-theme-studio/src/types.ts +112 -0
- package/template/modules/calendar/screenshot.jpg +0 -0
- package/template/modules/calendar/snapify.module.json +45 -0
- package/template/modules/calendar/src/admin/EventsPage.tsx +217 -0
- package/template/modules/calendar/src/admin/index.tsx +11 -0
- package/template/modules/calendar/src/public/index.tsx +231 -0
- package/template/modules/calendar/src/server.ts +143 -0
- package/template/modules/calendar/src/types.ts +25 -0
- package/template/modules/cart/screenshot.jpg +0 -0
- package/template/modules/cart/snapify.module.json +90 -0
- package/template/modules/cart/src/admin/index.tsx +265 -0
- package/template/modules/cart/src/public/CartPage.tsx +198 -0
- package/template/modules/cart/src/public/index.tsx +261 -0
- package/template/modules/cart/src/public/useQuote.ts +67 -0
- package/template/modules/cart/src/server.ts +148 -0
- package/template/modules/cart/src/types.ts +31 -0
- package/template/modules/checkout/screenshot.jpg +0 -0
- package/template/modules/checkout/snapify.module.json +264 -0
- package/template/modules/checkout/src/admin/OrderDetailPage.tsx +304 -0
- package/template/modules/checkout/src/admin/badges.tsx +28 -0
- package/template/modules/checkout/src/admin/index.tsx +236 -0
- package/template/modules/checkout/src/public/CheckoutPage.tsx +461 -0
- package/template/modules/checkout/src/public/OrderPages.tsx +153 -0
- package/template/modules/checkout/src/public/index.tsx +23 -0
- package/template/modules/checkout/src/server.ts +383 -0
- package/template/modules/checkout/src/types.ts +70 -0
- package/template/modules/customers/screenshot.jpg +0 -0
- package/template/modules/customers/snapify.module.json +115 -0
- package/template/modules/customers/src/admin/CustomerDetailPage.tsx +274 -0
- package/template/modules/customers/src/admin/index.tsx +194 -0
- package/template/modules/customers/src/public/AccountPages.tsx +470 -0
- package/template/modules/customers/src/public/AddressForm.tsx +115 -0
- package/template/modules/customers/src/public/AuthPages.tsx +349 -0
- package/template/modules/customers/src/public/Avatar.tsx +29 -0
- package/template/modules/customers/src/public/ProfileSection.tsx +291 -0
- package/template/modules/customers/src/public/index.tsx +137 -0
- package/template/modules/customers/src/public/session.ts +51 -0
- package/template/modules/customers/src/server.ts +421 -0
- package/template/modules/customers/src/types.ts +53 -0
- package/template/modules/recaptcha/logo.jpg +0 -0
- package/template/modules/recaptcha/screenshot.jpg +0 -0
- package/template/modules/recaptcha/snapify.module.json +99 -0
- package/template/modules/recaptcha/src/public/index.tsx +94 -0
- package/template/modules/recaptcha/src/server.ts +65 -0
- package/template/modules/recaptcha/src/types.ts +18 -0
- package/template/modules/shop/screenshot.jpg +0 -0
- package/template/modules/shop/snapify.module.json +340 -0
- package/template/modules/shop/src/admin/CategoriesPage.tsx +224 -0
- package/template/modules/shop/src/admin/ProductEditor.tsx +313 -0
- package/template/modules/shop/src/admin/ProductsPage.tsx +307 -0
- package/template/modules/shop/src/admin/index.tsx +14 -0
- package/template/modules/shop/src/public/Catalog.tsx +244 -0
- package/template/modules/shop/src/public/NotFound.tsx +22 -0
- package/template/modules/shop/src/public/ProductPage.tsx +195 -0
- package/template/modules/shop/src/public/index.tsx +134 -0
- package/template/modules/shop/src/public/useFetch.ts +26 -0
- package/template/modules/shop/src/server.ts +493 -0
- package/template/modules/shop/src/shared.ts +41 -0
- package/template/modules/shop/src/types.ts +60 -0
- package/template/modules/whatsapp/screenshot.jpg +0 -0
- package/template/modules/whatsapp/snapify.module.json +121 -0
- package/template/modules/whatsapp/src/public.tsx +119 -0
- package/template/modules/wp-seo-migrator/ARCHITECTURE.md +113 -0
- package/template/modules/wp-seo-migrator/README.md +21 -0
- package/template/modules/wp-seo-migrator/fixtures/aioseo-sample.csv +3 -0
- package/template/modules/wp-seo-migrator/fixtures/sample-exporter.json +39 -0
- package/template/modules/wp-seo-migrator/fixtures/sample-page.html +12 -0
- package/template/modules/wp-seo-migrator/fixtures/sample.htaccess +3 -0
- package/template/modules/wp-seo-migrator/screenshot.jpg +0 -0
- package/template/modules/wp-seo-migrator/snapify.module.json +87 -0
- package/template/modules/wp-seo-migrator/src/admin/HistoryPage.tsx +64 -0
- package/template/modules/wp-seo-migrator/src/admin/WizardPage.tsx +788 -0
- package/template/modules/wp-seo-migrator/src/admin/i18n.ts +156 -0
- package/template/modules/wp-seo-migrator/src/admin/index.tsx +11 -0
- package/template/modules/wp-seo-migrator/src/connectors/CUSTOM_CONNECTOR.md +31 -0
- package/template/modules/wp-seo-migrator/src/connectors/csvSeoFactory.ts +106 -0
- package/template/modules/wp-seo-migrator/src/connectors/exporter.ts +96 -0
- package/template/modules/wp-seo-migrator/src/connectors/gscCsv.ts +53 -0
- package/template/modules/wp-seo-migrator/src/connectors/htaccess.ts +65 -0
- package/template/modules/wp-seo-migrator/src/connectors/htmlCrawler.ts +90 -0
- package/template/modules/wp-seo-migrator/src/connectors/index.ts +113 -0
- package/template/modules/wp-seo-migrator/src/connectors/pluginCsv.ts +77 -0
- package/template/modules/wp-seo-migrator/src/connectors/rankMathCsv.ts +77 -0
- package/template/modules/wp-seo-migrator/src/connectors/redirection.ts +62 -0
- package/template/modules/wp-seo-migrator/src/connectors/sitemap.ts +44 -0
- package/template/modules/wp-seo-migrator/src/connectors/utils.ts +111 -0
- package/template/modules/wp-seo-migrator/src/connectors/wxr.ts +103 -0
- package/template/modules/wp-seo-migrator/src/connectors/yoastCsv.ts +56 -0
- package/template/modules/wp-seo-migrator/src/pipeline/analyze.ts +158 -0
- package/template/modules/wp-seo-migrator/src/pipeline/htmlParse.ts +58 -0
- package/template/modules/wp-seo-migrator/src/pipeline/remoteAuto.ts +328 -0
- package/template/modules/wp-seo-migrator/src/server.ts +492 -0
- package/template/modules/wp-seo-migrator/src/types.ts +151 -0
- package/template/modules/wp-seo-migrator/tests/connectors-extra.test.ts +39 -0
- package/template/modules/wp-seo-migrator/tests/merge.test.ts +25 -0
- package/template/package-lock.json +6016 -0
- package/template/package.json +74 -0
- package/template/public/images/photos/caravane-chameaux-desert.webp +0 -0
- package/template/public/images/photos/hammamet-medina-plage.jpg +0 -0
- package/template/public/images/photos/maison-campagne-collines.webp +0 -0
- package/template/public/images/photos/maisons-troglodytes-desert.jpg +0 -0
- package/template/public/images/photos/panorama-ville.jpg +0 -0
- package/template/public/images/photos/preveris-accessibilite-erp.jpg +0 -0
- package/template/public/images/photos/preveris-collectivites.jpg +0 -0
- package/template/public/images/photos/preveris-etudes-plans.jpg +0 -0
- package/template/public/images/photos/preveris-hero-erp.jpg +0 -0
- package/template/public/images/photos/preveris-ssi-incendie.jpg +0 -0
- package/template/public/images/photos/preveris-suivi-hotel.jpg +0 -0
- package/template/public/images/photos/ruelle-bleue-medina.jpg +0 -0
- package/template/public/images/photos/sidi-bou-said-port.webp +0 -0
- package/template/public/images/photos/terrasse-blanche-mer-voilier.jpg +0 -0
- package/template/public/landing/hero-ai-cms.jpg +0 -0
- package/template/public/landing/shot-dogga.jpg +0 -0
- package/template/public/landing/shot-mahdia.jpg +0 -0
- package/template/public/landing/shot-sidibou.jpg +0 -0
- package/template/public/llms.txt +35 -0
- package/template/public/logo.svg +10 -0
- package/template/scripts/app-pack.ts +155 -0
- package/template/scripts/app-publish.ts +100 -0
- package/template/scripts/apply-ecommerce-home.ts +196 -0
- package/template/scripts/auto-deploy-poll.sh +13 -0
- package/template/scripts/db-backup.sh +16 -0
- package/template/scripts/db-restore.sh +11 -0
- package/template/scripts/deploy.sh +34 -0
- package/template/scripts/github-webhook-deploy.sh +7 -0
- package/template/scripts/install-new-modules.ts +96 -0
- package/template/scripts/refresh-demo-baseline.ts +9 -0
- package/template/scripts/reinstall-marketplace-packs.ts +51 -0
- package/template/scripts/restore-classic-home.ts +13 -0
- package/template/scripts/sdk-pack.ts +289 -0
- package/template/scripts/sdk-publish.ts +75 -0
- package/template/scripts/seed-demo-products.ts +120 -0
- package/template/scripts/seed-theme-content-packs.ts +42 -0
- package/template/scripts/snapify-module.ts +207 -0
- package/template/scripts/test-theme-switch.ts +24 -0
- package/template/sdk/admin.css +18 -0
- package/template/sdk/admin.ts +95 -0
- package/template/sdk/build.ts +249 -0
- package/template/sdk/commerce.ts +512 -0
- package/template/sdk/content.ts +76 -0
- package/template/sdk/icons.ts +101 -0
- package/template/sdk/image.ts +60 -0
- package/template/sdk/index.ts +500 -0
- package/template/sdk/package.ts +298 -0
- package/template/sdk/recaptcha.tsx +122 -0
- package/template/sdk/settings.ts +84 -0
- package/template/sdk/theme.css +29 -0
- package/template/sdk/theme.ts +100 -0
- package/template/sdk/ui/commerce.tsx +385 -0
- package/template/sdk/ui/orders.tsx +136 -0
- package/template/sdk-kit/CHANGELOG.md +17 -0
- package/template/sdk-kit/LICENSE.md +47 -0
- package/template/sdk-kit/README.md +81 -0
- package/template/sdk-kit/cli.ts +339 -0
- package/template/sdk-kit/create-snapify/README.md +28 -0
- package/template/sdk-kit/create-snapify/create-snapify.mjs +11 -0
- package/template/sdk-kit/create-snapify/package.template.json +16 -0
- package/template/sdk-kit/package.template.json +95 -0
- package/template/sdk-kit/templates/common/README.md.tpl +27 -0
- package/template/sdk-kit/templates/common/_gitignore +3 -0
- package/template/sdk-kit/templates/common/package.json.tpl +19 -0
- package/template/sdk-kit/templates/common/src/snapify-env.d.ts +2 -0
- package/template/sdk-kit/templates/common/tsconfig.json +15 -0
- package/template/sdk-kit/templates/module/snapify.module.json.tpl +33 -0
- package/template/sdk-kit/templates/module/src/admin.tsx +53 -0
- package/template/sdk-kit/templates/module/src/public.tsx +49 -0
- package/template/sdk-kit/templates/module/src/server.ts +30 -0
- package/template/sdk-kit/templates/module/src/types.ts +19 -0
- package/template/sdk-kit/templates/theme/snapify.theme.json.tpl +22 -0
- package/template/sdk-kit/templates/theme/src/Footer.tsx +40 -0
- package/template/sdk-kit/templates/theme/src/Header.tsx +47 -0
- package/template/sdk-kit/templates/theme/src/Views.tsx +36 -0
- package/template/sdk-kit/templates/theme/src/blocks.tsx +93 -0
- package/template/sdk-kit/templates/theme/src/index.tsx +30 -0
- package/template/sdk-kit/templates/theme/src/site.tsx +59 -0
- package/template/sdk-kit/templates/theme/src/styles.css +71 -0
- package/template/server/client/routes.ts +252 -0
- package/template/server/cms/analyticsStore.ts +180 -0
- package/template/server/cms/auth.ts +155 -0
- package/template/server/cms/blockCatalog.ts +342 -0
- package/template/server/cms/blocks.ts +521 -0
- package/template/server/cms/contentMigration.ts +1119 -0
- package/template/server/cms/defaults.ts +303 -0
- package/template/server/cms/permissions.ts +154 -0
- package/template/server/cms/restoreClassicHome.ts +183 -0
- package/template/server/cms/revisions.ts +99 -0
- package/template/server/cms/scheduler.ts +78 -0
- package/template/server/cms/seed.ts +72 -0
- package/template/server/cms/seoAnalyzer.ts +213 -0
- package/template/server/cms/store.ts +122 -0
- package/template/server/cms/themeContent.ts +1386 -0
- package/template/server/cms/themePacks/sidibou-branding.json +1 -0
- package/template/server/cms/themePacks/sidibou-home.json +1 -0
- package/template/server/cms/themePacks/sidibou-menus.json +1 -0
- package/template/server/cms/types.ts +432 -0
- package/template/server/community/routes.ts +410 -0
- package/template/server/db/client.ts +43 -0
- package/template/server/db/repository.ts +389 -0
- package/template/server/db/schema.ts +726 -0
- package/template/server/demo/cmsReset.ts +196 -0
- package/template/server/developers/sdk.ts +85 -0
- package/template/server/geoip.ts +15 -0
- package/template/server/http.ts +53 -0
- package/template/server/mail.ts +216 -0
- package/template/server/marketplace/catalog.ts +74 -0
- package/template/server/marketplace/packageValidate.ts +475 -0
- package/template/server/marketplace/payments.ts +193 -0
- package/template/server/marketplace/routes.ts +850 -0
- package/template/server/marketplace/signing.ts +116 -0
- package/template/server/marketplace/syncOfficial.ts +282 -0
- package/template/server/media/images.ts +63 -0
- package/template/server/middleware/adminAuth.ts +134 -0
- package/template/server/modules/legacy.ts +44 -0
- package/template/server/modules/manager.ts +1122 -0
- package/template/server/modules/marketplace.ts +178 -0
- package/template/server/modules/outbound.ts +178 -0
- package/template/server/modules/purchases.ts +149 -0
- package/template/server/modules/records.ts +168 -0
- package/template/server/modules/themeHtml.ts +32 -0
- package/template/server/modules/trust.ts +16 -0
- package/template/server/modules/types.ts +147 -0
- package/template/server/platform/auth.ts +223 -0
- package/template/server/platform/clientWelcome.ts +168 -0
- package/template/server/platform/clients.ts +139 -0
- package/template/server/platform/dailyImprove.ts +356 -0
- package/template/server/platform/flouci.ts +126 -0
- package/template/server/platform/host.ts +69 -0
- package/template/server/platform/hostingProviders.ts +143 -0
- package/template/server/platform/licenseOrders.ts +291 -0
- package/template/server/platform/money.ts +42 -0
- package/template/server/platform/passwords.ts +41 -0
- package/template/server/platform/region.ts +86 -0
- package/template/server/platform/routes.ts +225 -0
- package/template/server/platform/seed.ts +82 -0
- package/template/server/platform/settings.ts +72 -0
- package/template/server/routes/adminAccount.ts +403 -0
- package/template/server/routes/adminCms.ts +808 -0
- package/template/server/routes/adminSystem.ts +243 -0
- package/template/server/routes/adminUsers.ts +449 -0
- package/template/server/routes/googleOAuth.ts +327 -0
- package/template/server/routes/modules.ts +323 -0
- package/template/server/routes/publicCms.ts +313 -0
- package/template/server/routes/seoPublic.ts +158 -0
- package/template/server/security/accounts.ts +121 -0
- package/template/server/security/audit.ts +143 -0
- package/template/server/security/authTokens.ts +74 -0
- package/template/server/security/ip.ts +68 -0
- package/template/server/security/rateLimit.ts +85 -0
- package/template/server/security/retention.ts +46 -0
- package/template/server/security/secrets.ts +44 -0
- package/template/server/security/sessions.ts +140 -0
- package/template/server/security/totp.ts +101 -0
- package/template/server/superadmin/analytics.ts +109 -0
- package/template/server/superadmin/auth.ts +92 -0
- package/template/server/superadmin/backlinksCatalog.ts +210 -0
- package/template/server/superadmin/frSeoContent.ts +165 -0
- package/template/server/superadmin/landingSeo.ts +675 -0
- package/template/server/superadmin/ops.ts +238 -0
- package/template/server/superadmin/routes.ts +1095 -0
- package/template/server/superadmin/tnSeoContent.ts +130 -0
- package/template/server.ts +522 -0
- package/template/src/App.tsx +263 -0
- package/template/src/admin/AdminApp.tsx +162 -0
- package/template/src/admin/account/AuthLayout.tsx +57 -0
- package/template/src/admin/account/SecurityForms.tsx +276 -0
- package/template/src/admin/admin.css +127 -0
- package/template/src/admin/context/AuthContext.tsx +147 -0
- package/template/src/admin/context/SiteContext.tsx +50 -0
- package/template/src/admin/editor/BlockLibrary.tsx +173 -0
- package/template/src/admin/editor/BlocksPanel.tsx +396 -0
- package/template/src/admin/editor/EditorBits.tsx +106 -0
- package/template/src/admin/editor/PreviewFrame.tsx +145 -0
- package/template/src/admin/editor/RichTextEditor.tsx +276 -0
- package/template/src/admin/editor/SeoPanel.tsx +349 -0
- package/template/src/admin/editor/StyleEditor.tsx +114 -0
- package/template/src/admin/editor/blockSchemas.ts +699 -0
- package/template/src/admin/editor/fields.tsx +486 -0
- package/template/src/admin/layout/AdminShell.tsx +418 -0
- package/template/src/admin/layout/nav.ts +95 -0
- package/template/src/admin/lib/api.ts +408 -0
- package/template/src/admin/lib/audit.ts +141 -0
- package/template/src/admin/lib/format.ts +84 -0
- package/template/src/admin/lib/hooks.ts +125 -0
- package/template/src/admin/main.tsx +16 -0
- package/template/src/admin/modules/InstallDialog.tsx +160 -0
- package/template/src/admin/modules/SettingsForm.tsx +145 -0
- package/template/src/admin/modules/kit.tsx +127 -0
- package/template/src/admin/modules/labels.tsx +226 -0
- package/template/src/admin/pages/AccountSetupPage.tsx +62 -0
- package/template/src/admin/pages/AnalyticsPage.tsx +206 -0
- package/template/src/admin/pages/BrandingPage.tsx +154 -0
- package/template/src/admin/pages/DashboardPage.tsx +239 -0
- package/template/src/admin/pages/EngagementPage.tsx +168 -0
- package/template/src/admin/pages/FormsPage.tsx +435 -0
- package/template/src/admin/pages/GeneralPage.tsx +120 -0
- package/template/src/admin/pages/LoginPage.tsx +249 -0
- package/template/src/admin/pages/MaintenancePage.tsx +125 -0
- package/template/src/admin/pages/MarketplacePage.tsx +426 -0
- package/template/src/admin/pages/MediaPage.tsx +251 -0
- package/template/src/admin/pages/MenusPage.tsx +446 -0
- package/template/src/admin/pages/ModuleAdminPage.tsx +113 -0
- package/template/src/admin/pages/ModuleDetailPage.tsx +293 -0
- package/template/src/admin/pages/ModulesPage.tsx +135 -0
- package/template/src/admin/pages/NewsletterPage.tsx +193 -0
- package/template/src/admin/pages/PageEditorPage.tsx +322 -0
- package/template/src/admin/pages/PagesListPage.tsx +277 -0
- package/template/src/admin/pages/PostEditorPage.tsx +292 -0
- package/template/src/admin/pages/PostsListPage.tsx +187 -0
- package/template/src/admin/pages/ProfilePage.tsx +489 -0
- package/template/src/admin/pages/ResetPasswordPage.tsx +110 -0
- package/template/src/admin/pages/SeoPage.tsx +670 -0
- package/template/src/admin/pages/SettingsPage.tsx +189 -0
- package/template/src/admin/pages/ThemeCustomizePage.tsx +170 -0
- package/template/src/admin/pages/ThemesPage.tsx +292 -0
- package/template/src/admin/pages/UsersPage.tsx +57 -0
- package/template/src/admin/pages/WidgetsPage.tsx +200 -0
- package/template/src/admin/seo/GoogleSetup.tsx +529 -0
- package/template/src/admin/settings/EmailTab.tsx +293 -0
- package/template/src/admin/settings/OtherTabs.tsx +270 -0
- package/template/src/admin/settings/SecurityTab.tsx +172 -0
- package/template/src/admin/settings/controls.tsx +133 -0
- package/template/src/admin/ui/Pagination.tsx +170 -0
- package/template/src/admin/ui/SaveBar.tsx +77 -0
- package/template/src/admin/ui/TagInput.tsx +54 -0
- package/template/src/admin/ui/charts.tsx +108 -0
- package/template/src/admin/ui/media.tsx +265 -0
- package/template/src/admin/ui/overlays.tsx +239 -0
- package/template/src/admin/ui/primitives.tsx +544 -0
- package/template/src/admin/users/AuditTab.tsx +104 -0
- package/template/src/admin/users/RolesTab.tsx +368 -0
- package/template/src/admin/users/UsersTab.tsx +723 -0
- package/template/src/admin/users/shared.tsx +278 -0
- package/template/src/cms/icons.ts +7 -0
- package/template/src/components/CookieBanner.tsx +166 -0
- package/template/src/components/MaintenanceGate.tsx +66 -0
- package/template/src/components/SiteAnalytics.tsx +64 -0
- package/template/src/components/SnapifyLogo.tsx +44 -0
- package/template/src/components/cms/BlockRenderer.tsx +154 -0
- package/template/src/components/cms/WidgetArea.tsx +193 -0
- package/template/src/context/SiteConfigContext.tsx +130 -0
- package/template/src/demoBase.ts +23 -0
- package/template/src/index.css +90 -0
- package/template/src/main.tsx +16 -0
- package/template/src/modules/ModuleHost.tsx +197 -0
- package/template/src/preview.ts +63 -0
- package/template/src/runtime.ts +38 -0
- package/template/src/themes/ThemeHost.tsx +168 -0
- package/template/src/themes/fallback.tsx +71 -0
- package/template/src/types.ts +94 -0
- package/template/src/views/BlogPostView.tsx +68 -0
- package/template/src/views/CmsPageView.tsx +34 -0
- package/template/start-pm2.sh +3 -0
- package/template/superadmin.html +20 -0
- package/template/themes/ai-canvas/screenshot.jpg +0 -0
- package/template/themes/ai-canvas/snapify.theme.json +96 -0
- package/template/themes/ai-canvas/src/CeeSimulator.tsx +247 -0
- package/template/themes/ai-canvas/src/Footer.tsx +190 -0
- package/template/themes/ai-canvas/src/Header.tsx +324 -0
- package/template/themes/ai-canvas/src/Layout.tsx +56 -0
- package/template/themes/ai-canvas/src/NotFound.tsx +58 -0
- package/template/themes/ai-canvas/src/Post.tsx +26 -0
- package/template/themes/ai-canvas/src/SnapifyLogo.tsx +44 -0
- package/template/themes/ai-canvas/src/blocks/CollectionBlocks.tsx +711 -0
- package/template/themes/ai-canvas/src/blocks/ContentBlocks.tsx +318 -0
- package/template/themes/ai-canvas/src/blocks/ConversionBlocks.tsx +559 -0
- package/template/themes/ai-canvas/src/blocks/HeaderBlocks.tsx +341 -0
- package/template/themes/ai-canvas/src/index.tsx +54 -0
- package/template/themes/ai-canvas/src/kit.tsx +398 -0
- package/template/themes/ai-canvas/src/site.ts +29 -0
- package/template/themes/ai-canvas/src/styles.css +317 -0
- package/template/themes/dogga/screenshot.jpg +0 -0
- package/template/themes/dogga/snapify.theme.json +55 -0
- package/template/themes/dogga/src/Brand.tsx +41 -0
- package/template/themes/dogga/src/Footer.tsx +202 -0
- package/template/themes/dogga/src/Header.tsx +239 -0
- package/template/themes/dogga/src/Layout.tsx +43 -0
- package/template/themes/dogga/src/Views.tsx +71 -0
- package/template/themes/dogga/src/blocks/CollectionBlocks.tsx +674 -0
- package/template/themes/dogga/src/blocks/ContentBlocks.tsx +307 -0
- package/template/themes/dogga/src/blocks/ConversionBlocks.tsx +571 -0
- package/template/themes/dogga/src/blocks/HeaderBlocks.tsx +289 -0
- package/template/themes/dogga/src/index.tsx +53 -0
- package/template/themes/dogga/src/kit.tsx +362 -0
- package/template/themes/dogga/src/site.ts +56 -0
- package/template/themes/dogga/src/styles.css +396 -0
- package/template/themes/mahdia/screenshot.jpg +0 -0
- package/template/themes/mahdia/snapify.theme.json +65 -0
- package/template/themes/mahdia/src/Brand.tsx +39 -0
- package/template/themes/mahdia/src/Footer.tsx +210 -0
- package/template/themes/mahdia/src/Header.tsx +291 -0
- package/template/themes/mahdia/src/Layout.tsx +44 -0
- package/template/themes/mahdia/src/Views.tsx +79 -0
- package/template/themes/mahdia/src/blocks/CollectionBlocks.tsx +674 -0
- package/template/themes/mahdia/src/blocks/ContentBlocks.tsx +307 -0
- package/template/themes/mahdia/src/blocks/ConversionBlocks.tsx +571 -0
- package/template/themes/mahdia/src/blocks/HeaderBlocks.tsx +289 -0
- package/template/themes/mahdia/src/index.tsx +53 -0
- package/template/themes/mahdia/src/kit.tsx +362 -0
- package/template/themes/mahdia/src/site.ts +75 -0
- package/template/themes/mahdia/src/styles.css +446 -0
- package/template/themes/preveris/screenshot.jpg +0 -0
- package/template/themes/preveris/snapify.theme.json +126 -0
- package/template/themes/preveris/src/Brand.tsx +44 -0
- package/template/themes/preveris/src/Footer.tsx +202 -0
- package/template/themes/preveris/src/Header.tsx +239 -0
- package/template/themes/preveris/src/Layout.tsx +42 -0
- package/template/themes/preveris/src/Views.tsx +71 -0
- package/template/themes/preveris/src/blocks/CollectionBlocks.tsx +678 -0
- package/template/themes/preveris/src/blocks/ContentBlocks.tsx +307 -0
- package/template/themes/preveris/src/blocks/ConversionBlocks.tsx +571 -0
- package/template/themes/preveris/src/blocks/HeaderBlocks.tsx +299 -0
- package/template/themes/preveris/src/index.tsx +53 -0
- package/template/themes/preveris/src/kit.tsx +365 -0
- package/template/themes/preveris/src/site.ts +79 -0
- package/template/themes/preveris/src/styles.css +446 -0
- package/template/themes/sidibou/screenshot.jpg +0 -0
- package/template/themes/sidibou/snapify.theme.json +21 -0
- package/template/themes/sidibou/src/CeeSimulator.tsx +247 -0
- package/template/themes/sidibou/src/Footer.tsx +203 -0
- package/template/themes/sidibou/src/Header.tsx +324 -0
- package/template/themes/sidibou/src/Layout.tsx +53 -0
- package/template/themes/sidibou/src/NotFound.tsx +58 -0
- package/template/themes/sidibou/src/Post.tsx +26 -0
- package/template/themes/sidibou/src/SnapifyLogo.tsx +44 -0
- package/template/themes/sidibou/src/blocks/CollectionBlocks.tsx +711 -0
- package/template/themes/sidibou/src/blocks/ContentBlocks.tsx +318 -0
- package/template/themes/sidibou/src/blocks/ConversionBlocks.tsx +559 -0
- package/template/themes/sidibou/src/blocks/HeaderBlocks.tsx +341 -0
- package/template/themes/sidibou/src/index.tsx +54 -0
- package/template/themes/sidibou/src/kit.tsx +398 -0
- package/template/themes/sidibou/src/site.ts +28 -0
- package/template/themes/sidibou/src/styles.css +317 -0
- package/template/tsconfig.json +33 -0
- package/template/vite.config.ts +42 -0
|
@@ -0,0 +1,923 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pages SEO longue traîne — Tunisie, France, alternative WordPress
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { Link } from 'react-router-dom';
|
|
6
|
+
import { INTL_PRICE } from './copy';
|
|
7
|
+
|
|
8
|
+
const linkStyle = { fontWeight: 600 as const, color: 'var(--color-teal-dark)' };
|
|
9
|
+
|
|
10
|
+
function Page({
|
|
11
|
+
title,
|
|
12
|
+
lead,
|
|
13
|
+
children,
|
|
14
|
+
ctaLabel,
|
|
15
|
+
}: {
|
|
16
|
+
title: string;
|
|
17
|
+
lead: string;
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
ctaLabel: string;
|
|
20
|
+
}) {
|
|
21
|
+
return (
|
|
22
|
+
<div className="lp-section">
|
|
23
|
+
<article className="lp-wrap" style={{ maxWidth: 760 }}>
|
|
24
|
+
<h1 style={{ fontFamily: 'var(--font-display)', fontSize: 'clamp(1.8rem,3vw,2.5rem)', marginTop: 0, lineHeight: 1.15 }}>
|
|
25
|
+
{title}
|
|
26
|
+
</h1>
|
|
27
|
+
<p style={{ lineHeight: 1.75, color: 'rgba(11,21,40,.75)', fontSize: '1.05rem' }}>{lead}</p>
|
|
28
|
+
<div style={{ lineHeight: 1.75, color: 'rgba(11,21,40,.78)' }}>{children}</div>
|
|
29
|
+
<div className="lp-cta-row" style={{ marginTop: 28 }}>
|
|
30
|
+
<Link to="/commander" className="lp-btn">
|
|
31
|
+
{ctaLabel}
|
|
32
|
+
</Link>
|
|
33
|
+
<a href="/demo/" className="lp-btn lp-btn-ghost">
|
|
34
|
+
Essayer la démo
|
|
35
|
+
</a>
|
|
36
|
+
</div>
|
|
37
|
+
</article>
|
|
38
|
+
</div>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function SeoTunisiePage() {
|
|
43
|
+
return (
|
|
44
|
+
<Page
|
|
45
|
+
title="CMS Tunisie — créer un site web ou une boutique avec Snapify"
|
|
46
|
+
lead="Snapify est le CMS made in Tunisia pour les entreprises de Tunis, Sfax, Sousse, Nabeul et partout en Tunisie. Sans PHP, avec IA, édition visuelle et paiement Flouci."
|
|
47
|
+
ctaLabel="Commander 699 DT / an"
|
|
48
|
+
>
|
|
49
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Pourquoi un CMS tunisien moderne ?</h2>
|
|
50
|
+
<ul>
|
|
51
|
+
<li>
|
|
52
|
+
<strong>699 DT / an</strong> — tarif clair, installation en 48 h sur votre hébergement
|
|
53
|
+
</li>
|
|
54
|
+
<li>
|
|
55
|
+
<strong>Sans PHP</strong> — hors de la course aux CVE des CMS historiques
|
|
56
|
+
</li>
|
|
57
|
+
<li>
|
|
58
|
+
<strong>IA + édition visuelle</strong> — générez, peaufinez, publiez
|
|
59
|
+
</li>
|
|
60
|
+
<li>
|
|
61
|
+
<strong>E-commerce & Flouci</strong> — boutique, panier, commandes adaptées au marché local
|
|
62
|
+
</li>
|
|
63
|
+
<li>
|
|
64
|
+
<strong>Migration</strong> — WordPress, Prestashop ou site maison
|
|
65
|
+
</li>
|
|
66
|
+
</ul>
|
|
67
|
+
|
|
68
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Création de site web — villes & guides</h2>
|
|
69
|
+
<ul>
|
|
70
|
+
<li>
|
|
71
|
+
<Link to="/creation-site-web-tunisie" style={linkStyle}>
|
|
72
|
+
Création site web Tunisie
|
|
73
|
+
</Link>
|
|
74
|
+
</li>
|
|
75
|
+
<li>
|
|
76
|
+
<Link to="/creation-site-web-tunis" style={linkStyle}>
|
|
77
|
+
Création site web Tunis
|
|
78
|
+
</Link>
|
|
79
|
+
</li>
|
|
80
|
+
<li>
|
|
81
|
+
<Link to="/creation-site-web-sfax" style={linkStyle}>
|
|
82
|
+
Création site web Sfax
|
|
83
|
+
</Link>
|
|
84
|
+
</li>
|
|
85
|
+
<li>
|
|
86
|
+
<Link to="/creation-site-web-sousse" style={linkStyle}>
|
|
87
|
+
Création site web Sousse
|
|
88
|
+
</Link>
|
|
89
|
+
</li>
|
|
90
|
+
<li>
|
|
91
|
+
<Link to="/agence-web-tunisie" style={linkStyle}>
|
|
92
|
+
Snapify vs agences (Medianet, Novatis…)
|
|
93
|
+
</Link>
|
|
94
|
+
</li>
|
|
95
|
+
<li>
|
|
96
|
+
<Link to="/boutique-en-ligne-tunisie" style={linkStyle}>
|
|
97
|
+
Boutique en ligne Tunisie
|
|
98
|
+
</Link>
|
|
99
|
+
</li>
|
|
100
|
+
<li>
|
|
101
|
+
<Link to="/site-vitrine-tunisie" style={linkStyle}>
|
|
102
|
+
Site vitrine Tunisie
|
|
103
|
+
</Link>
|
|
104
|
+
</li>
|
|
105
|
+
</ul>
|
|
106
|
+
<p>
|
|
107
|
+
Installation 100 % distante : Tunis, Sfax, Sousse, Monastir, Bizerte, Gabès, Ariana, Hammamet… Vous gardez
|
|
108
|
+
votre domaine et votre hébergeur.
|
|
109
|
+
</p>
|
|
110
|
+
|
|
111
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Écosystème</h2>
|
|
112
|
+
<p>
|
|
113
|
+
<a href="https://marketplace.snapify.tn" rel="noreferrer">
|
|
114
|
+
Marketplace
|
|
115
|
+
</a>{' '}
|
|
116
|
+
(modules & thèmes signés) ·{' '}
|
|
117
|
+
<a href="https://community.snapify.tn" rel="noreferrer">
|
|
118
|
+
Communauté
|
|
119
|
+
</a>{' '}
|
|
120
|
+
· Éditeur{' '}
|
|
121
|
+
<a href="https://novalabs.tn" rel="noreferrer">
|
|
122
|
+
NOVALABS
|
|
123
|
+
</a>
|
|
124
|
+
.
|
|
125
|
+
</p>
|
|
126
|
+
<p>
|
|
127
|
+
Aussi disponible en France :{' '}
|
|
128
|
+
<Link to="/seo-france" style={{ fontWeight: 600, color: 'var(--color-teal-dark)' }}>
|
|
129
|
+
Snapify CMS France
|
|
130
|
+
</Link>
|
|
131
|
+
.
|
|
132
|
+
</p>
|
|
133
|
+
</Page>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export function SeoFrancePage() {
|
|
138
|
+
return (
|
|
139
|
+
<Page
|
|
140
|
+
title="CMS France — créer un site web ou e-commerce avec Snapify"
|
|
141
|
+
lead={`Snapify est un CMS Node moderne pour la France : alternative à Wix, Shopify et WordPress. Génération IA, édition visuelle. ${INTL_PRICE}/an, installation en 48 h.`}
|
|
142
|
+
ctaLabel={`Commander ${INTL_PRICE} / an`}
|
|
143
|
+
>
|
|
144
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Pour qui ?</h2>
|
|
145
|
+
<p>
|
|
146
|
+
Agences, freelances, TPE/PME à Paris, Lyon, Marseille, Toulouse, Nantes, Bordeaux… qui veulent un CMS rapide,
|
|
147
|
+
sécurisé et simple à éditer — sans lock-in Wix ni zoo de plugins.
|
|
148
|
+
</p>
|
|
149
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Pages utiles</h2>
|
|
150
|
+
<ul>
|
|
151
|
+
<li>
|
|
152
|
+
<Link to="/alternative-wix" style={linkStyle}>
|
|
153
|
+
Alternative à Wix
|
|
154
|
+
</Link>
|
|
155
|
+
</li>
|
|
156
|
+
<li>
|
|
157
|
+
<Link to="/alternative-shopify" style={linkStyle}>
|
|
158
|
+
Alternative à Shopify
|
|
159
|
+
</Link>
|
|
160
|
+
</li>
|
|
161
|
+
<li>
|
|
162
|
+
<Link to="/creation-site-web-france" style={linkStyle}>
|
|
163
|
+
Création site web France
|
|
164
|
+
</Link>
|
|
165
|
+
</li>
|
|
166
|
+
<li>
|
|
167
|
+
<Link to="/createur-site-web" style={linkStyle}>
|
|
168
|
+
Créateur de site web IA
|
|
169
|
+
</Link>
|
|
170
|
+
</li>
|
|
171
|
+
<li>
|
|
172
|
+
<Link to="/creation-site-web-paris" style={linkStyle}>
|
|
173
|
+
Site web Paris
|
|
174
|
+
</Link>
|
|
175
|
+
</li>
|
|
176
|
+
</ul>
|
|
177
|
+
|
|
178
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Ce que vous gagnez</h2>
|
|
179
|
+
<ul>
|
|
180
|
+
<li>
|
|
181
|
+
<strong>{INTL_PRICE} / an</strong> — licence claire, vous amenez l’hébergement
|
|
182
|
+
</li>
|
|
183
|
+
<li>
|
|
184
|
+
<strong>Stack Node</strong> — hors surface d’attaque PHP classique
|
|
185
|
+
</li>
|
|
186
|
+
<li>
|
|
187
|
+
<strong>Site web IA</strong> — brief → structure → édition fine à la souris
|
|
188
|
+
</li>
|
|
189
|
+
<li>
|
|
190
|
+
<strong>E-commerce intégré</strong> — boutique, panier, espace client
|
|
191
|
+
</li>
|
|
192
|
+
<li>
|
|
193
|
+
<strong>Migration WordPress / Prestashop</strong> — contenu et catalogue repris
|
|
194
|
+
</li>
|
|
195
|
+
</ul>
|
|
196
|
+
|
|
197
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Intentions de recherche ciblées</h2>
|
|
198
|
+
<p>
|
|
199
|
+
<em>alternative WordPress</em>, <em>CMS sans PHP</em>, <em>créer site web France</em>, <em>CMS IA</em>,{' '}
|
|
200
|
+
<em>migration WordPress</em>, <em>CMS e-commerce France</em>, <em>boutique en ligne Paris</em>.
|
|
201
|
+
</p>
|
|
202
|
+
<p>
|
|
203
|
+
Comparatif détaillé :{' '}
|
|
204
|
+
<Link to="/alternative-wordpress" style={{ fontWeight: 600, color: 'var(--color-teal-dark)' }}>
|
|
205
|
+
Snapify vs WordPress
|
|
206
|
+
</Link>
|
|
207
|
+
. Marché Tunisie :{' '}
|
|
208
|
+
<Link to="/seo-tunisie" style={{ fontWeight: 600, color: 'var(--color-teal-dark)' }}>
|
|
209
|
+
CMS Tunisie
|
|
210
|
+
</Link>
|
|
211
|
+
.
|
|
212
|
+
</p>
|
|
213
|
+
</Page>
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export function CreationSiteWebFrancePage() {
|
|
218
|
+
return (
|
|
219
|
+
<Page
|
|
220
|
+
title="Création site web France — Snapify, alternative à Wix"
|
|
221
|
+
lead={`Créez un site vitrine ou e-commerce en France : IA, édition visuelle, migration WordPress. Licence ${INTL_PRICE}/an sur votre hébergement — sans lock-in Wix ou Shopify.`}
|
|
222
|
+
ctaLabel={`Créer mon site · ${INTL_PRICE}/an`}
|
|
223
|
+
>
|
|
224
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Wix, Shopify, agence… ou Snapify ?</h2>
|
|
225
|
+
<ul>
|
|
226
|
+
<li>
|
|
227
|
+
<strong>Wix / Squarespace</strong> — rapide, mais abonnements qui montent et données chez eux
|
|
228
|
+
</li>
|
|
229
|
+
<li>
|
|
230
|
+
<strong>Shopify</strong> — fort en boutique, commissions et apps qui s’additionnent
|
|
231
|
+
</li>
|
|
232
|
+
<li>
|
|
233
|
+
<strong>Agence</strong> — sur-mesure, souvent 2–10 k€
|
|
234
|
+
</li>
|
|
235
|
+
<li>
|
|
236
|
+
<strong>Snapify</strong> — CMS Node + IA chez vous, {INTL_PRICE}/an, install 48 h
|
|
237
|
+
</li>
|
|
238
|
+
</ul>
|
|
239
|
+
|
|
240
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Guides concurrents</h2>
|
|
241
|
+
<ul>
|
|
242
|
+
<li>
|
|
243
|
+
<Link to="/alternative-wix" style={linkStyle}>
|
|
244
|
+
Alternative à Wix
|
|
245
|
+
</Link>
|
|
246
|
+
</li>
|
|
247
|
+
<li>
|
|
248
|
+
<Link to="/alternative-shopify" style={linkStyle}>
|
|
249
|
+
Alternative à Shopify
|
|
250
|
+
</Link>
|
|
251
|
+
</li>
|
|
252
|
+
<li>
|
|
253
|
+
<Link to="/alternative-squarespace" style={linkStyle}>
|
|
254
|
+
Alternative à Squarespace
|
|
255
|
+
</Link>
|
|
256
|
+
</li>
|
|
257
|
+
<li>
|
|
258
|
+
<Link to="/alternative-wordpress" style={linkStyle}>
|
|
259
|
+
Alternative à WordPress
|
|
260
|
+
</Link>
|
|
261
|
+
</li>
|
|
262
|
+
<li>
|
|
263
|
+
<Link to="/createur-site-web" style={linkStyle}>
|
|
264
|
+
Créateur de site web IA
|
|
265
|
+
</Link>
|
|
266
|
+
</li>
|
|
267
|
+
</ul>
|
|
268
|
+
|
|
269
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Par ville</h2>
|
|
270
|
+
<ul>
|
|
271
|
+
<li>
|
|
272
|
+
<Link to="/creation-site-web-paris" style={linkStyle}>
|
|
273
|
+
Création site web Paris
|
|
274
|
+
</Link>
|
|
275
|
+
</li>
|
|
276
|
+
<li>
|
|
277
|
+
<Link to="/creation-site-web-lyon" style={linkStyle}>
|
|
278
|
+
Création site web Lyon
|
|
279
|
+
</Link>
|
|
280
|
+
</li>
|
|
281
|
+
<li>
|
|
282
|
+
<Link to="/creation-site-web-marseille" style={linkStyle}>
|
|
283
|
+
Création site web Marseille
|
|
284
|
+
</Link>
|
|
285
|
+
</li>
|
|
286
|
+
</ul>
|
|
287
|
+
|
|
288
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Vitrine & boutique</h2>
|
|
289
|
+
<p>
|
|
290
|
+
<Link to="/site-vitrine-france" style={linkStyle}>
|
|
291
|
+
Site vitrine France
|
|
292
|
+
</Link>{' '}
|
|
293
|
+
·{' '}
|
|
294
|
+
<Link to="/boutique-en-ligne-france" style={linkStyle}>
|
|
295
|
+
Boutique en ligne France
|
|
296
|
+
</Link>{' '}
|
|
297
|
+
·{' '}
|
|
298
|
+
<Link to="/seo-france" style={linkStyle}>
|
|
299
|
+
CMS France
|
|
300
|
+
</Link>
|
|
301
|
+
</p>
|
|
302
|
+
</Page>
|
|
303
|
+
);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export function AlternativeWixPage() {
|
|
307
|
+
return (
|
|
308
|
+
<Page
|
|
309
|
+
title="Alternative à Wix — Snapify CMS"
|
|
310
|
+
lead={`Quittez le lock-in Wix : Snapify s’installe sur votre hébergement, avec IA et e-commerce. Licence claire ${INTL_PRICE}/an.`}
|
|
311
|
+
ctaLabel={`Passer à Snapify · ${INTL_PRICE}/an`}
|
|
312
|
+
>
|
|
313
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Wix vs Snapify</h2>
|
|
314
|
+
<div style={{ overflowX: 'auto' }}>
|
|
315
|
+
<table style={{ width: '100%', borderCollapse: 'collapse', fontSize: 14 }}>
|
|
316
|
+
<thead>
|
|
317
|
+
<tr style={{ textAlign: 'left', borderBottom: '2px solid rgba(11,21,40,.12)' }}>
|
|
318
|
+
<th style={{ padding: '8px 6px' }}>Critère</th>
|
|
319
|
+
<th style={{ padding: '8px 6px' }}>Wix</th>
|
|
320
|
+
<th style={{ padding: '8px 6px' }}>Snapify</th>
|
|
321
|
+
</tr>
|
|
322
|
+
</thead>
|
|
323
|
+
<tbody>
|
|
324
|
+
{[
|
|
325
|
+
['Hébergement', 'Chez Wix', 'Le vôtre (OVH, o2switch…)'],
|
|
326
|
+
['Prix', 'Abonnements + apps', `${INTL_PRICE} / an`],
|
|
327
|
+
['IA', 'Selon plans', 'Oui + édition fine'],
|
|
328
|
+
['E-commerce', 'Plans boutique', 'Boutique native'],
|
|
329
|
+
['Sortie', 'Difficile', 'Données chez vous'],
|
|
330
|
+
].map(([a, b, c]) => (
|
|
331
|
+
<tr key={a} style={{ borderBottom: '1px solid rgba(11,21,40,.08)' }}>
|
|
332
|
+
<td style={{ padding: '10px 6px', fontWeight: 600 }}>{a}</td>
|
|
333
|
+
<td style={{ padding: '10px 6px' }}>{b}</td>
|
|
334
|
+
<td style={{ padding: '10px 6px' }}>{c}</td>
|
|
335
|
+
</tr>
|
|
336
|
+
))}
|
|
337
|
+
</tbody>
|
|
338
|
+
</table>
|
|
339
|
+
</div>
|
|
340
|
+
<p>
|
|
341
|
+
<Link to="/alternative-shopify" style={linkStyle}>
|
|
342
|
+
Vs Shopify
|
|
343
|
+
</Link>{' '}
|
|
344
|
+
·{' '}
|
|
345
|
+
<Link to="/creation-site-web-france" style={linkStyle}>
|
|
346
|
+
Création site France
|
|
347
|
+
</Link>
|
|
348
|
+
</p>
|
|
349
|
+
</Page>
|
|
350
|
+
);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
export function AlternativeShopifyPage() {
|
|
354
|
+
return (
|
|
355
|
+
<Page
|
|
356
|
+
title="Alternative à Shopify — Snapify"
|
|
357
|
+
lead={`E-commerce sans commission plateforme : boutique native Snapify, licence ${INTL_PRICE}/an sur votre serveur.`}
|
|
358
|
+
ctaLabel={`Créer ma boutique · ${INTL_PRICE}/an`}
|
|
359
|
+
>
|
|
360
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Pourquoi quitter Shopify ?</h2>
|
|
361
|
+
<p>
|
|
362
|
+
Shopify est puissant, mais l’abonnement + les apps + les frais transactionnels s’additionnent. Snapify inclut
|
|
363
|
+
la boutique dans la licence annuelle — seuls les frais bancaires réels s’appliquent.
|
|
364
|
+
</p>
|
|
365
|
+
<p>
|
|
366
|
+
<Link to="/boutique-en-ligne-france" style={linkStyle}>
|
|
367
|
+
Boutique en ligne France
|
|
368
|
+
</Link>{' '}
|
|
369
|
+
·{' '}
|
|
370
|
+
<Link to="/alternative-wix" style={linkStyle}>
|
|
371
|
+
Vs Wix
|
|
372
|
+
</Link>
|
|
373
|
+
</p>
|
|
374
|
+
</Page>
|
|
375
|
+
);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
export function AlternativeSquarespacePage() {
|
|
379
|
+
return (
|
|
380
|
+
<Page
|
|
381
|
+
title="Alternative à Squarespace — Snapify"
|
|
382
|
+
lead={`Design soigné + IA, sans rester captif de Squarespace. CMS sur votre hébergement, ${INTL_PRICE}/an.`}
|
|
383
|
+
ctaLabel={`Essayer Snapify · ${INTL_PRICE}/an`}
|
|
384
|
+
>
|
|
385
|
+
<p>
|
|
386
|
+
Squarespace soigne l’esthétique ; Snapify ajoute l’autonomie technique : vos fichiers, votre domaine, votre
|
|
387
|
+
hébergeur UE/France.
|
|
388
|
+
</p>
|
|
389
|
+
<p>
|
|
390
|
+
<Link to="/site-vitrine-france" style={linkStyle}>
|
|
391
|
+
Site vitrine France
|
|
392
|
+
</Link>{' '}
|
|
393
|
+
·{' '}
|
|
394
|
+
<Link to="/alternative-wix" style={linkStyle}>
|
|
395
|
+
Vs Wix
|
|
396
|
+
</Link>
|
|
397
|
+
</p>
|
|
398
|
+
</Page>
|
|
399
|
+
);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
export function BoutiqueEnLigneFrancePage() {
|
|
403
|
+
return (
|
|
404
|
+
<Page
|
|
405
|
+
title="Boutique en ligne France — Snapify"
|
|
406
|
+
lead={`Catalogue, panier, commandes : e-commerce France sans Shopify. Licence ${INTL_PRICE}/an.`}
|
|
407
|
+
ctaLabel={`Créer ma boutique · ${INTL_PRICE}/an`}
|
|
408
|
+
>
|
|
409
|
+
<ul>
|
|
410
|
+
<li>Boutique native (pas 15 plugins)</li>
|
|
411
|
+
<li>Hébergement à vous</li>
|
|
412
|
+
<li>Migration Prestashop / WooCommerce possible</li>
|
|
413
|
+
</ul>
|
|
414
|
+
<p>
|
|
415
|
+
<Link to="/alternative-shopify" style={linkStyle}>
|
|
416
|
+
Alternative Shopify
|
|
417
|
+
</Link>{' '}
|
|
418
|
+
·{' '}
|
|
419
|
+
<Link to="/creation-site-web-france" style={linkStyle}>
|
|
420
|
+
Création site France
|
|
421
|
+
</Link>
|
|
422
|
+
</p>
|
|
423
|
+
</Page>
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
export function SiteVitrineFrancePage() {
|
|
428
|
+
return (
|
|
429
|
+
<Page
|
|
430
|
+
title="Site vitrine France — Snapify"
|
|
431
|
+
lead={`Pages, SEO, formulaires : site vitrine moderne. Alternative Wix / WordPress.com — ${INTL_PRICE}/an.`}
|
|
432
|
+
ctaLabel={`Créer mon site vitrine · ${INTL_PRICE}/an`}
|
|
433
|
+
>
|
|
434
|
+
<p>
|
|
435
|
+
<Link to="/boutique-en-ligne-france" style={linkStyle}>
|
|
436
|
+
Passer en boutique
|
|
437
|
+
</Link>{' '}
|
|
438
|
+
·{' '}
|
|
439
|
+
<Link to="/createur-site-web" style={linkStyle}>
|
|
440
|
+
Créateur IA
|
|
441
|
+
</Link>
|
|
442
|
+
</p>
|
|
443
|
+
</Page>
|
|
444
|
+
);
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
export function CreationSiteWebParisPage() {
|
|
448
|
+
return (
|
|
449
|
+
<Page
|
|
450
|
+
title="Création site web Paris — Snapify"
|
|
451
|
+
lead={`Site vitrine ou e-commerce pour TPE/PME parisiennes. IA + CMS, ${INTL_PRICE}/an — alternative Wix.`}
|
|
452
|
+
ctaLabel={`Commander pour Paris · ${INTL_PRICE}/an`}
|
|
453
|
+
>
|
|
454
|
+
<p>
|
|
455
|
+
<Link to="/creation-site-web-lyon" style={linkStyle}>
|
|
456
|
+
Lyon
|
|
457
|
+
</Link>{' '}
|
|
458
|
+
·{' '}
|
|
459
|
+
<Link to="/creation-site-web-marseille" style={linkStyle}>
|
|
460
|
+
Marseille
|
|
461
|
+
</Link>{' '}
|
|
462
|
+
·{' '}
|
|
463
|
+
<Link to="/alternative-wix" style={linkStyle}>
|
|
464
|
+
Vs Wix
|
|
465
|
+
</Link>
|
|
466
|
+
</p>
|
|
467
|
+
</Page>
|
|
468
|
+
);
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
export function CreationSiteWebLyonPage() {
|
|
472
|
+
return (
|
|
473
|
+
<Page
|
|
474
|
+
title="Création site web Lyon — Snapify"
|
|
475
|
+
lead={`Site web à Lyon : vitrine ou boutique, IA, ${INTL_PRICE}/an.`}
|
|
476
|
+
ctaLabel={`Commander pour Lyon · ${INTL_PRICE}/an`}
|
|
477
|
+
>
|
|
478
|
+
<p>
|
|
479
|
+
<Link to="/creation-site-web-paris" style={linkStyle}>
|
|
480
|
+
Paris
|
|
481
|
+
</Link>{' '}
|
|
482
|
+
·{' '}
|
|
483
|
+
<Link to="/creation-site-web-france" style={linkStyle}>
|
|
484
|
+
Toute la France
|
|
485
|
+
</Link>
|
|
486
|
+
</p>
|
|
487
|
+
</Page>
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
export function CreationSiteWebMarseillePage() {
|
|
492
|
+
return (
|
|
493
|
+
<Page
|
|
494
|
+
title="Création site web Marseille — Snapify"
|
|
495
|
+
lead={`Site web Marseille & PACA : CMS IA, ${INTL_PRICE}/an, alternative Wix.`}
|
|
496
|
+
ctaLabel={`Commander pour Marseille · ${INTL_PRICE}/an`}
|
|
497
|
+
>
|
|
498
|
+
<p>
|
|
499
|
+
<Link to="/creation-site-web-france" style={linkStyle}>
|
|
500
|
+
Création site France
|
|
501
|
+
</Link>
|
|
502
|
+
</p>
|
|
503
|
+
</Page>
|
|
504
|
+
);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
export function CreateurSiteWebPage() {
|
|
508
|
+
return (
|
|
509
|
+
<Page
|
|
510
|
+
title="Créateur de site web — Snapify IA"
|
|
511
|
+
lead={`Décrivez votre activité : l’IA pose les bases, vous peaufinez. Alternative Wix / Jimdo — ${INTL_PRICE}/an.`}
|
|
512
|
+
ctaLabel={`Créer mon site · ${INTL_PRICE}/an`}
|
|
513
|
+
>
|
|
514
|
+
<p>
|
|
515
|
+
<Link to="/alternative-wix" style={linkStyle}>
|
|
516
|
+
Comparatif Wix
|
|
517
|
+
</Link>{' '}
|
|
518
|
+
·{' '}
|
|
519
|
+
<a href="/demo/" style={linkStyle}>
|
|
520
|
+
Démo
|
|
521
|
+
</a>
|
|
522
|
+
</p>
|
|
523
|
+
</Page>
|
|
524
|
+
);
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
export function CreationSiteWebTunisiePage() {
|
|
528
|
+
return (
|
|
529
|
+
<Page
|
|
530
|
+
title="Création site web Tunisie — Snapify CMS 699 DT/an"
|
|
531
|
+
lead="Créez un site vitrine ou une boutique en ligne en Tunisie sans devis flou : IA, édition visuelle, Flouci. Alternative claire aux projets d’agence à plusieurs milliers de dinars."
|
|
532
|
+
ctaLabel="Créer mon site · 699 DT/an"
|
|
533
|
+
>
|
|
534
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Pourquoi Snapify plutôt qu’un devis d’agence ?</h2>
|
|
535
|
+
<p>
|
|
536
|
+
Les agences web tunisiennes (Medianet, Novatis et d’autres) restent excellentes pour du sur-mesure premium.
|
|
537
|
+
Beaucoup de TPE/PME ont surtout besoin d’un site professionnel, éditable, avec e-commerce Flouci — sans
|
|
538
|
+
recommencer un devis à chaque modification.
|
|
539
|
+
</p>
|
|
540
|
+
<ul>
|
|
541
|
+
<li>
|
|
542
|
+
<strong>699 DT / an</strong> — tarif publié, installation 48 h
|
|
543
|
+
</li>
|
|
544
|
+
<li>CMS made in Tunisia (NOVALABS), stack Node sans PHP</li>
|
|
545
|
+
<li>Génération IA + constructeur de pages</li>
|
|
546
|
+
<li>Boutique + paiement Flouci</li>
|
|
547
|
+
<li>Migration WordPress / Prestashop possible</li>
|
|
548
|
+
</ul>
|
|
549
|
+
|
|
550
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Par ville</h2>
|
|
551
|
+
<ul>
|
|
552
|
+
<li>
|
|
553
|
+
<Link to="/creation-site-web-tunis" style={linkStyle}>
|
|
554
|
+
Création site web Tunis
|
|
555
|
+
</Link>
|
|
556
|
+
</li>
|
|
557
|
+
<li>
|
|
558
|
+
<Link to="/creation-site-web-sfax" style={linkStyle}>
|
|
559
|
+
Création site web Sfax
|
|
560
|
+
</Link>
|
|
561
|
+
</li>
|
|
562
|
+
<li>
|
|
563
|
+
<Link to="/creation-site-web-sousse" style={linkStyle}>
|
|
564
|
+
Création site web Sousse
|
|
565
|
+
</Link>
|
|
566
|
+
</li>
|
|
567
|
+
</ul>
|
|
568
|
+
|
|
569
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Guides liés</h2>
|
|
570
|
+
<p>
|
|
571
|
+
<Link to="/agence-web-tunisie" style={linkStyle}>
|
|
572
|
+
Snapify vs agence web Tunisie
|
|
573
|
+
</Link>{' '}
|
|
574
|
+
·{' '}
|
|
575
|
+
<Link to="/boutique-en-ligne-tunisie" style={linkStyle}>
|
|
576
|
+
Boutique en ligne Tunisie
|
|
577
|
+
</Link>{' '}
|
|
578
|
+
·{' '}
|
|
579
|
+
<Link to="/site-vitrine-tunisie" style={linkStyle}>
|
|
580
|
+
Site vitrine Tunisie
|
|
581
|
+
</Link>{' '}
|
|
582
|
+
·{' '}
|
|
583
|
+
<Link to="/seo-tunisie" style={linkStyle}>
|
|
584
|
+
CMS Tunisie
|
|
585
|
+
</Link>
|
|
586
|
+
</p>
|
|
587
|
+
</Page>
|
|
588
|
+
);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
export function CreationSiteWebTunisPage() {
|
|
592
|
+
return (
|
|
593
|
+
<Page
|
|
594
|
+
title="Création site web Tunis — Snapify 699 DT/an"
|
|
595
|
+
lead="Site vitrine ou e-commerce pour entreprises du Grand Tunis (Lac, Centre-ville, Ariana, La Marsa). CMS IA + Flouci, installé en 48 h."
|
|
596
|
+
ctaLabel="Commander pour Tunis · 699 DT/an"
|
|
597
|
+
>
|
|
598
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Créer un site à Tunis sans projet à 5–8 k DT</h2>
|
|
599
|
+
<p>
|
|
600
|
+
Sur les recherches « création site web Tunis », les devis d’agence démarrent souvent à plusieurs milliers de
|
|
601
|
+
dinars. Snapify propose une licence annuelle à 699 DT : vous (ou votre freelance) éditez le site, l’IA accélère
|
|
602
|
+
le premier jet, Flouci gère les paiements locaux.
|
|
603
|
+
</p>
|
|
604
|
+
<ul>
|
|
605
|
+
<li>Présence web pour TPE/PME, cabinets, commerces du Grand Tunis</li>
|
|
606
|
+
<li>SEO local (titles, meta, sitemap) prêt dès la mise en ligne</li>
|
|
607
|
+
<li>Démo publique avant paiement</li>
|
|
608
|
+
</ul>
|
|
609
|
+
<p>
|
|
610
|
+
<Link to="/creation-site-web-tunisie" style={linkStyle}>
|
|
611
|
+
Toute la Tunisie
|
|
612
|
+
</Link>{' '}
|
|
613
|
+
·{' '}
|
|
614
|
+
<Link to="/agence-web-tunisie" style={linkStyle}>
|
|
615
|
+
Comparatif agences
|
|
616
|
+
</Link>{' '}
|
|
617
|
+
·{' '}
|
|
618
|
+
<Link to="/boutique-en-ligne-tunisie" style={linkStyle}>
|
|
619
|
+
E-commerce
|
|
620
|
+
</Link>
|
|
621
|
+
</p>
|
|
622
|
+
</Page>
|
|
623
|
+
);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
export function CreationSiteWebSfaxPage() {
|
|
627
|
+
return (
|
|
628
|
+
<Page
|
|
629
|
+
title="Création site web Sfax — Snapify 699 DT/an"
|
|
630
|
+
lead="Lancez votre site vitrine ou boutique à Sfax : CMS tunisien, IA, Flouci. Installation à distance en 48 h."
|
|
631
|
+
ctaLabel="Commander pour Sfax · 699 DT/an"
|
|
632
|
+
>
|
|
633
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Site web pour entreprises sfaxiennes</h2>
|
|
634
|
+
<p>
|
|
635
|
+
Industrie, commerce, services : Snapify vous donne un outil d’édition moderne sans dépendre d’un gros devis
|
|
636
|
+
d’agence. Vous gardez votre domaine et votre hébergeur.
|
|
637
|
+
</p>
|
|
638
|
+
<p>
|
|
639
|
+
<Link to="/creation-site-web-tunis" style={linkStyle}>
|
|
640
|
+
Tunis
|
|
641
|
+
</Link>{' '}
|
|
642
|
+
·{' '}
|
|
643
|
+
<Link to="/creation-site-web-sousse" style={linkStyle}>
|
|
644
|
+
Sousse
|
|
645
|
+
</Link>{' '}
|
|
646
|
+
·{' '}
|
|
647
|
+
<Link to="/creation-site-web-tunisie" style={linkStyle}>
|
|
648
|
+
Tunisie
|
|
649
|
+
</Link>
|
|
650
|
+
</p>
|
|
651
|
+
</Page>
|
|
652
|
+
);
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
export function CreationSiteWebSoussePage() {
|
|
656
|
+
return (
|
|
657
|
+
<Page
|
|
658
|
+
title="Création site web Sousse — Snapify 699 DT/an"
|
|
659
|
+
lead="Hôtellerie, commerce, services du Sahel : site vitrine ou e-commerce avec Snapify. 699 DT/an, Flouci, IA."
|
|
660
|
+
ctaLabel="Commander pour Sousse · 699 DT/an"
|
|
661
|
+
>
|
|
662
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Visibilité locale à Sousse & Sahel</h2>
|
|
663
|
+
<p>
|
|
664
|
+
Créez un site professionnel pour Sousse, Hammamet ou Monastir. Édition autonome, modules signés, paiement
|
|
665
|
+
Flouci pour les boutiques.
|
|
666
|
+
</p>
|
|
667
|
+
<p>
|
|
668
|
+
<Link to="/creation-site-web-tunisie" style={linkStyle}>
|
|
669
|
+
Création site web Tunisie
|
|
670
|
+
</Link>{' '}
|
|
671
|
+
·{' '}
|
|
672
|
+
<Link to="/site-vitrine-tunisie" style={linkStyle}>
|
|
673
|
+
Site vitrine
|
|
674
|
+
</Link>
|
|
675
|
+
</p>
|
|
676
|
+
</Page>
|
|
677
|
+
);
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
export function BoutiqueEnLigneTunisiePage() {
|
|
681
|
+
return (
|
|
682
|
+
<Page
|
|
683
|
+
title="Boutique en ligne Tunisie — e-commerce Flouci | Snapify"
|
|
684
|
+
lead="Catalogue, panier, commandes, paiement Flouci : lancez votre e-commerce tunisien sans WooCommerce ni devis e-commerce d’agence à 4 000+ DT."
|
|
685
|
+
ctaLabel="Créer ma boutique · 699 DT/an"
|
|
686
|
+
>
|
|
687
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>E-commerce pensé pour la Tunisie</h2>
|
|
688
|
+
<ul>
|
|
689
|
+
<li>Boutique native dans le CMS (pas 15 plugins)</li>
|
|
690
|
+
<li>Paiement Flouci</li>
|
|
691
|
+
<li>Espace client, stock, commandes</li>
|
|
692
|
+
<li>Licence 699 DT/an — évoluez sans nouveau devis</li>
|
|
693
|
+
</ul>
|
|
694
|
+
<p>
|
|
695
|
+
<Link to="/creation-site-web-tunisie" style={linkStyle}>
|
|
696
|
+
Création site web Tunisie
|
|
697
|
+
</Link>{' '}
|
|
698
|
+
·{' '}
|
|
699
|
+
<Link to="/agence-web-tunisie" style={linkStyle}>
|
|
700
|
+
Vs agence web
|
|
701
|
+
</Link>
|
|
702
|
+
</p>
|
|
703
|
+
</Page>
|
|
704
|
+
);
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
export function SiteVitrineTunisiePage() {
|
|
708
|
+
return (
|
|
709
|
+
<Page
|
|
710
|
+
title="Site vitrine Tunisie — création rapide | Snapify 699 DT/an"
|
|
711
|
+
lead="Pages, SEO, formulaires, responsive : un site vitrine moderne pour présenter votre activité en Tunisie."
|
|
712
|
+
ctaLabel="Créer mon site vitrine · 699 DT/an"
|
|
713
|
+
>
|
|
714
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Vitrine pro, tarif prévisible</h2>
|
|
715
|
+
<p>
|
|
716
|
+
Moins de latence qu’un projet d’agence classique : brief → génération IA → édition visuelle → mise en ligne
|
|
717
|
+
sous 48 h après paiement.
|
|
718
|
+
</p>
|
|
719
|
+
<p>
|
|
720
|
+
<Link to="/boutique-en-ligne-tunisie" style={linkStyle}>
|
|
721
|
+
Passer en boutique
|
|
722
|
+
</Link>{' '}
|
|
723
|
+
·{' '}
|
|
724
|
+
<Link to="/creation-site-web-tunis" style={linkStyle}>
|
|
725
|
+
Site à Tunis
|
|
726
|
+
</Link>
|
|
727
|
+
</p>
|
|
728
|
+
</Page>
|
|
729
|
+
);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
export function AgenceWebTunisiePage() {
|
|
733
|
+
return (
|
|
734
|
+
<Page
|
|
735
|
+
title="Agence web Tunisie : Snapify vs Medianet, Novatis & co"
|
|
736
|
+
lead="Devis d’agence 3–8 k DT ou CMS Snapify à 699 DT/an ? Comparatif honnête pour TPE/PME qui veulent un site web en Tunisie."
|
|
737
|
+
ctaLabel="Choisir Snapify · 699 DT/an"
|
|
738
|
+
>
|
|
739
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Deux modèles, deux besoins</h2>
|
|
740
|
+
<p>
|
|
741
|
+
<strong>Medianet</strong>, <strong>Novatis</strong> et d’autres agences web en Tunisie excellent sur les
|
|
742
|
+
projets sur mesure, la direction artistique et l’accompagnement full-service. Les budgets vitrine cités sur le
|
|
743
|
+
marché tournent souvent autour de 3 000 à 8 000 DT (plus pour l’e-commerce).
|
|
744
|
+
</p>
|
|
745
|
+
<p>
|
|
746
|
+
<strong>Snapify</strong> cible les entreprises qui veulent un site professionnel <em>maîtrisé</em> : licence
|
|
747
|
+
annuelle, édition autonome, IA, Flouci, migration WordPress — sans recommencer un devis à chaque page.
|
|
748
|
+
</p>
|
|
749
|
+
|
|
750
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Tableau comparatif</h2>
|
|
751
|
+
<div style={{ overflowX: 'auto' }}>
|
|
752
|
+
<table style={{ width: '100%', borderCollapse: 'collapse', fontSize: 14 }}>
|
|
753
|
+
<thead>
|
|
754
|
+
<tr style={{ textAlign: 'left', borderBottom: '2px solid rgba(11,21,40,.12)' }}>
|
|
755
|
+
<th style={{ padding: '8px 6px' }}>Critère</th>
|
|
756
|
+
<th style={{ padding: '8px 6px' }}>Agence (ex. Medianet, Novatis)</th>
|
|
757
|
+
<th style={{ padding: '8px 6px' }}>Snapify</th>
|
|
758
|
+
</tr>
|
|
759
|
+
</thead>
|
|
760
|
+
<tbody>
|
|
761
|
+
{[
|
|
762
|
+
['Budget typique', '3 000–8 000+ DT / projet', '699 DT / an'],
|
|
763
|
+
['Délai', 'Plusieurs semaines', 'Install 48 h après paiement'],
|
|
764
|
+
['Évolutions', 'Nouveaux devis / tickets', 'Édition + IA en autonomie'],
|
|
765
|
+
['E-commerce', 'Sur devis', 'Boutique + Flouci inclus'],
|
|
766
|
+
['Stack', 'WP / sur-mesure / CMS maison', 'CMS Node, modules signés'],
|
|
767
|
+
['Idéal pour', 'Sur-mesure, marque premium', 'TPE/PME, freelances, agences qui industrialisent'],
|
|
768
|
+
].map(([a, b, c]) => (
|
|
769
|
+
<tr key={a} style={{ borderBottom: '1px solid rgba(11,21,40,.08)' }}>
|
|
770
|
+
<td style={{ padding: '10px 6px', fontWeight: 600 }}>{a}</td>
|
|
771
|
+
<td style={{ padding: '10px 6px' }}>{b}</td>
|
|
772
|
+
<td style={{ padding: '10px 6px' }}>{c}</td>
|
|
773
|
+
</tr>
|
|
774
|
+
))}
|
|
775
|
+
</tbody>
|
|
776
|
+
</table>
|
|
777
|
+
</div>
|
|
778
|
+
|
|
779
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Quand choisir Snapify ?</h2>
|
|
780
|
+
<ul>
|
|
781
|
+
<li>Vous voulez un tarif clair et un site évolutif</li>
|
|
782
|
+
<li>Vous vendez en Tunisie (Flouci) ou présentez une activité locale</li>
|
|
783
|
+
<li>Vous migrez depuis WordPress et voulez sortir des plugins fragiles</li>
|
|
784
|
+
<li>Vous êtes une petite agence qui veut livrer plus vite à ses clients</li>
|
|
785
|
+
</ul>
|
|
786
|
+
<p>
|
|
787
|
+
Pages locales :{' '}
|
|
788
|
+
<Link to="/creation-site-web-tunis" style={linkStyle}>
|
|
789
|
+
Tunis
|
|
790
|
+
</Link>
|
|
791
|
+
,{' '}
|
|
792
|
+
<Link to="/creation-site-web-sfax" style={linkStyle}>
|
|
793
|
+
Sfax
|
|
794
|
+
</Link>
|
|
795
|
+
,{' '}
|
|
796
|
+
<Link to="/creation-site-web-sousse" style={linkStyle}>
|
|
797
|
+
Sousse
|
|
798
|
+
</Link>{' '}
|
|
799
|
+
·{' '}
|
|
800
|
+
<Link to="/creation-site-web-tunisie" style={linkStyle}>
|
|
801
|
+
Création site web Tunisie
|
|
802
|
+
</Link>
|
|
803
|
+
</p>
|
|
804
|
+
</Page>
|
|
805
|
+
);
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
export function PressePage({ intl }: { intl: boolean }) {
|
|
809
|
+
const site = intl ? 'https://snapify.fr' : 'https://snapify.tn';
|
|
810
|
+
const badge = `${site}/logo.svg`;
|
|
811
|
+
return (
|
|
812
|
+
<Page
|
|
813
|
+
title="Presse & partenaires — Snapify"
|
|
814
|
+
lead="Kit média et badges pour journalistes, annuaires et partenaires. Lienez-nous — on lienera en retour quand c’est pertinent."
|
|
815
|
+
ctaLabel={intl ? `Essayer Snapify · ${INTL_PRICE}/an` : 'Essayer Snapify · 699 DT/an'}
|
|
816
|
+
>
|
|
817
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>En bref</h2>
|
|
818
|
+
<ul>
|
|
819
|
+
<li>
|
|
820
|
+
<strong>Produit</strong> — CMS Node (sans PHP) : sites vitrine, e-commerce, IA, marketplace
|
|
821
|
+
</li>
|
|
822
|
+
<li>
|
|
823
|
+
<strong>Éditeur</strong> — NOVALABS WEB DESIGN · Tunisie
|
|
824
|
+
</li>
|
|
825
|
+
<li>
|
|
826
|
+
<strong>Contact presse</strong> — contact@novalabs.tn · +216 24 734 647
|
|
827
|
+
</li>
|
|
828
|
+
<li>
|
|
829
|
+
<strong>Sites</strong> —{' '}
|
|
830
|
+
<a href="https://snapify.tn">snapify.tn</a> · <a href="https://snapify.fr">snapify.fr</a>
|
|
831
|
+
</li>
|
|
832
|
+
</ul>
|
|
833
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Badge / hotlink</h2>
|
|
834
|
+
<p>Vous pouvez afficher ce badge avec un lien vers Snapify :</p>
|
|
835
|
+
<pre
|
|
836
|
+
style={{
|
|
837
|
+
background: 'rgba(11,21,40,.04)',
|
|
838
|
+
padding: 12,
|
|
839
|
+
borderRadius: 12,
|
|
840
|
+
overflow: 'auto',
|
|
841
|
+
fontSize: 12,
|
|
842
|
+
}}
|
|
843
|
+
>{`<a href="${site}/?utm_source=partner&utm_medium=badge" rel="noopener">
|
|
844
|
+
<img src="${badge}" alt="Snapify CMS" width="40" height="40" />
|
|
845
|
+
Snapify — CMS moderne
|
|
846
|
+
</a>`}</pre>
|
|
847
|
+
<p style={{ marginTop: 16 }}>
|
|
848
|
+
<img src="/logo.svg" alt="Snapify" width={48} height={48} />
|
|
849
|
+
</p>
|
|
850
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Pages utiles</h2>
|
|
851
|
+
<ul>
|
|
852
|
+
<li>
|
|
853
|
+
<Link to="/alternative-wordpress">Alternative WordPress</Link>
|
|
854
|
+
</li>
|
|
855
|
+
<li>
|
|
856
|
+
<Link to="/seo-france">CMS France</Link>
|
|
857
|
+
</li>
|
|
858
|
+
<li>
|
|
859
|
+
<Link to="/seo-tunisie">CMS Tunisie</Link>
|
|
860
|
+
</li>
|
|
861
|
+
</ul>
|
|
862
|
+
</Page>
|
|
863
|
+
);
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
export function AlternativeWordpressPage({ intl }: { intl: boolean }) {
|
|
867
|
+
return (
|
|
868
|
+
<Page
|
|
869
|
+
title="Alternative à WordPress : Snapify CMS (sans PHP)"
|
|
870
|
+
lead="WordPress reste puissant — mais CVE, plugins abandonnés et sites lents freinent beaucoup d’équipes. Snapify propose un CMS Node, modules signés, IA et migration."
|
|
871
|
+
ctaLabel={intl ? `Passer à Snapify · ${INTL_PRICE}/an` : 'Passer à Snapify · 699 DT/an'}
|
|
872
|
+
>
|
|
873
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>WordPress vs Snapify</h2>
|
|
874
|
+
<div style={{ overflowX: 'auto' }}>
|
|
875
|
+
<table style={{ width: '100%', borderCollapse: 'collapse', fontSize: 14 }}>
|
|
876
|
+
<thead>
|
|
877
|
+
<tr style={{ textAlign: 'left', borderBottom: '2px solid rgba(11,21,40,.12)' }}>
|
|
878
|
+
<th style={{ padding: '8px 6px' }}>Critère</th>
|
|
879
|
+
<th style={{ padding: '8px 6px' }}>WordPress</th>
|
|
880
|
+
<th style={{ padding: '8px 6px' }}>Snapify</th>
|
|
881
|
+
</tr>
|
|
882
|
+
</thead>
|
|
883
|
+
<tbody>
|
|
884
|
+
{[
|
|
885
|
+
['Stack', 'PHP + plugins', 'Node, modules signés'],
|
|
886
|
+
['Sécurité', 'Surface CVE large', 'Moins exposé au stack PHP'],
|
|
887
|
+
['Édition', 'Gutenberg / page builders', 'Blocs + génération IA'],
|
|
888
|
+
['E-commerce', 'WooCommerce (+ plugins)', 'Boutique native'],
|
|
889
|
+
['Mises à jour', 'Souvent risquées', 'Plateforme maintenue'],
|
|
890
|
+
['Migration', '—', 'Depuis WP / Prestashop'],
|
|
891
|
+
['Prix', 'Variable (plugins)', intl ? `${INTL_PRICE}/an` : '699 DT/an'],
|
|
892
|
+
].map(([a, b, c]) => (
|
|
893
|
+
<tr key={a} style={{ borderBottom: '1px solid rgba(11,21,40,.08)' }}>
|
|
894
|
+
<td style={{ padding: '10px 6px', fontWeight: 600 }}>{a}</td>
|
|
895
|
+
<td style={{ padding: '10px 6px' }}>{b}</td>
|
|
896
|
+
<td style={{ padding: '10px 6px' }}>{c}</td>
|
|
897
|
+
</tr>
|
|
898
|
+
))}
|
|
899
|
+
</tbody>
|
|
900
|
+
</table>
|
|
901
|
+
</div>
|
|
902
|
+
|
|
903
|
+
<h2 style={{ fontFamily: 'var(--font-display)' }}>Quand migrer ?</h2>
|
|
904
|
+
<ul>
|
|
905
|
+
<li>Votre site WordPress est lent ou piraté régulièrement</li>
|
|
906
|
+
<li>Vous dépendez de 15+ plugins dont certains ne sont plus maintenus</li>
|
|
907
|
+
<li>Vous voulez générer du contenu avec l’IA puis peaufiner visuellement</li>
|
|
908
|
+
<li>Vous vendez en ligne et voulez un parcours boutique plus simple</li>
|
|
909
|
+
</ul>
|
|
910
|
+
<p>
|
|
911
|
+
Guides locaux :{' '}
|
|
912
|
+
<Link to="/seo-france" style={{ fontWeight: 600, color: 'var(--color-teal-dark)' }}>
|
|
913
|
+
CMS France
|
|
914
|
+
</Link>{' '}
|
|
915
|
+
·{' '}
|
|
916
|
+
<Link to="/seo-tunisie" style={{ fontWeight: 600, color: 'var(--color-teal-dark)' }}>
|
|
917
|
+
CMS Tunisie
|
|
918
|
+
</Link>
|
|
919
|
+
.
|
|
920
|
+
</p>
|
|
921
|
+
</Page>
|
|
922
|
+
);
|
|
923
|
+
}
|