Choose a starter
The developer pack contains three separate projects. Choose the one that matches your product, retain its lockfile and use its README for provider and deployment details. Install Node.js 22.15 or newer and npm before running these commands.
Get the pack
Section titled “Get the pack”Contact hello@newsteam.io or your NewsTeam project owner for the current developer pack, your Site app ID and matching API environment. The pack is supplied through that handover; these guides do not assume a public download or provision an account.
demo-codebase— Next.js website with Site routes, articles/pages, widgets, discovery, feeds and sitemaps. Verify your Site, hosting/cache configuration, provider accounts and any member/payment flows before launch.demo-native-app— Expo/React Native for iOS and Android, with fixture and live Site modes. Build with native toolchains and test on devices; JavaScript exports do not verify a signed binary.demo-integrations— A separate typed service with capture/replay and outbound examples. Deploy a protected service reachable by NewsTeam and test the actual provider workflow. Action examples remain previews.
Build a website
Section titled “Build a website”From the extracted pack:
cd demo-codebasenpm cicp .env.example .env.localSet .env.local:
NEWSTEAM_APP_ID=your-public-site-app-idNEWSTEAM_API_URL=https://api.newsteam.ioNEWSTEAM_ENABLE_MEMBERSHIP=falseARTICLE_ACCESS_MODE=freenpm run devOpen http://localhost:3000. The API origin has no /v1 suffix. Publish the Site and relevant Pages in Desk; an app ID alone does not publish them. API configuration stays on the server, with browser operations using the starter’s same-origin proxy.
The reference includes Site branding, routing, SEO, widgets, search, feeds/sitemaps, configured analytics and advertising. Credentials, account configuration, consent rules and campaign eligibility remain specific to your publication. Membership is optional and off by default; free article presentation is a starter setting, not proof of paywall enforcement. Review reader identity, checkout and Site client rules before enabling them.
Run npm test and the build for your hosting target. The supplied developer handover and cache manifest describe the Cloudflare/OpenNext example and required runtime resources. Test public cache hits, private bypasses, preview links, feeds, sitemaps and provider requests on staging.
Build an iOS or Android app
Section titled “Build an iOS or Android app”From the extracted pack:
cd demo-native-appnpm cicp .env.example .env.localnpm startThe default EXPO_PUBLIC_CONTENT_MODE=fixture uses illustrative bundled content and makes no CMS calls. For a live Site, set:
EXPO_PUBLIC_CONTENT_MODE=liveEXPO_PUBLIC_NEWSTEAM_APP_ID=your-public-site-app-idEXPO_PUBLIC_NEWSTEAM_API_URL=https://api.newsteam.ioEXPO_PUBLIC_SITE_URL=https://your-publication.exampleSelect your Site in live mode. Public configuration is included in the app bundle; provider secrets belong on a server. The reference includes native lists/widgets, continuous reading and offline bookmarks. Account, push and paid-access foundations require the matching providers, registered callbacks and separate acceptance.
Use npm run verify for the starter checks and npm run ios or npm run android with the required Xcode/iOS or Android tooling. npm run export:native produces JavaScript and assets; it does not establish device, signing, store or native-binary readiness. Test deep links, secure token storage, offline behavior, payments and configured media/providers on the devices you will support. Browser review additionally requires permitted CORS or the supplied review proxy.
Build a custom integration
Section titled “Build a custom integration”From the extracted pack:
cd demo-integrationsnpm cinpm run checknpm testnpm run devThis project uses published @newsteam/plugin-sdk@1.0.0-alpha.3. A Site app ID does not register a service: NewsTeam discovers its reachable URL and selects a type ID. The local fixture is a protocol reference; implement provider calls and access controls before deployment. Outbound/action examples are local previews, and unconfigured webhooks are rejected.
For a smaller project available directly from these docs, use the complete importer walkthrough. Check registered providers and setup requirements before writing an integration.