Skip to content

Split landing page into its own repo (app-only frontend) - #160

Open
majicmaj wants to merge 2 commits into
donetick:developfrom
majicmaj:remove-landing-page
Open

Split landing page into its own repo (app-only frontend)#160
majicmaj wants to merge 2 commits into
donetick:developfrom
majicmaj:remove-landing-page

Conversation

@majicmaj

Copy link
Copy Markdown

Split the landing page into its own repository

The marketing/landing page has moved out of this app into a standalone, SEO-first static site:

➡️ https://github.com/majicmaj/donetick-landing

This app (frontend) is now app-only — it renders the user's chores at the root and no longer serves a marketing page on any hostname.

Why

The landing page lived inside this SPA and was shown via a hostname check (donetick.com / www.donetick.com<Landing/>, everything else → the app). So every visitor to the marketing domain downloaded the whole app bundle (~3 MB JS) just to read a static pitch page, and the initial HTML was an empty <div id="root"> with no metadata — bad for SEO and for load performance.

The new donetick-landing is a static Astro site: server-rendered HTML with full meta / OpenGraph / JSON-LD, a sitemap + robots.txt, near-zero JS (one small React island for the interactive assignment demo), and its own independent deploy.

What changed here

Removed Notes
src/views/Landing/ (14 files) Hero, features, demos, footer, etc. now live in donetick-landing.
Hostname switch in src/contexts/RouterContext.jsx (getMainRoute()) Root / now always renders <MyChores/>.
/welcome route It pointed at <Landing/>.
aos dependency Landing-only.
VITE_IS_LANDING_DEFAULT env var Unused in code; dropped from .env / .env.development.

/privacy and /terms (their own views) are untouched. Added docs/landing-migration.md + a README pointer.

Deployment impact ⚠️

  • app.donetick.com → still served by this SPA. No change.
  • donetick.com / www.donetick.com → must now be pointed at the donetick-landing deployment (static; build npm run build, output dist/ — Cloudflare Pages or any static host). Until repointed, donetick.com served by this app will show the app (signed-out visitors get /login) instead of the marketing page.
  • Self-hosters → no action needed. Self-hosted instances never matched the public-domain hostname check, so their root already rendered the app.

Verification

  • vite build passes with the landing code and aos removed.
  • grep confirms no remaining views/Landing / getMainRoute / aos references in src.

Notes

  • Base branch: develop.
  • Opened from a fork (majicmaj/donetick-fe) since the landing site now lives under majicmaj.

🤖 Generated with Claude Code

Majd and others added 2 commits July 18, 2026 23:04
The marketing landing page has been split into a standalone static Astro
site (https://github.com/majicmaj/donetick-landing) for better SEO and
performance. This app is now app-only.

- Delete src/views/Landing/ (hero, features, demos, footer, etc.)
- Simplify RouterContext: root '/' always renders <MyChores/>; drop the
  donetick.com hostname switch (getMainRoute) and the /welcome route
- Remove the landing-only `aos` dependency
- Drop the unused VITE_IS_LANDING_DEFAULT env var
- Add docs/landing-migration.md + README pointer

App build verified (vite build) and no Landing references remain.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Follow-up to the landing removal — clean up stale landing-era logic the
first pass missed:
- NavBar: drop '/welcome' from the hidden-navbar routes, remove the
  donetick.com/www.donetick.com hostname check that suppressed the navbar,
  and drop '/landing' from publicPages
- PageTransition: remove the dead '/landing' route-hierarchy entry and
  fade-transition check

No hostname branching or landing references remain in src; vite build passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant