{"id":19209868,"url":"https://github.com/themesguide/airstack","last_synced_at":"2025-05-12T19:22:07.258Z","repository":{"id":202056404,"uuid":"141492181","full_name":"ThemesGuide/airstack","owner":"ThemesGuide","description":"Build your own community curated resources list using Airtable + ReactJs","archived":false,"fork":false,"pushed_at":"2019-04-03T17:15:58.000Z","size":76,"stargazers_count":56,"open_issues_count":1,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-12T19:21:58.442Z","etag":null,"topics":["airtable","javascript","reactjs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ThemesGuide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-07-18T21:28:57.000Z","updated_at":"2024-12-19T13:01:53.000Z","dependencies_parsed_at":"2024-06-22T18:16:43.686Z","dependency_job_id":null,"html_url":"https://github.com/ThemesGuide/airstack","commit_stats":null,"previous_names":["themesguide/airstack"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThemesGuide%2Fairstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThemesGuide%2Fairstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThemesGuide%2Fairstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThemesGuide%2Fairstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThemesGuide","download_url":"https://codeload.github.com/ThemesGuide/airstack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253806076,"owners_count":21967090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airtable","javascript","reactjs"],"created_at":"2024-11-09T13:33:27.873Z","updated_at":"2025-05-12T19:22:07.235Z","avatar_url":"https://github.com/ThemesGuide.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Airstack\n\nBuild your own community curated resources list (Startup Stash, TemplateStash, WDStack, etc..) using Airtable and ReactJs.\n==\n\nAirstack is a free, open-source project that enables that creation of curated collections and niche topic directories. \nCreate your own categorized list of Web resources. The whole premise of Airstack is that the app is easily managed, without coding, via the \nAirtable UI.\n\n\u003chttps://airtable.com/\u003e\n\u003chttps://reactjs.org/\u003e\n\u003chttps://getbootstrap.com/\u003e\n\n\nBackend\n===\n\nThe backend and data store is an Airtable \"speadsheet\" database, which is also used to configure and administer the Web app.\nThe Airtable database contains 3 core tables:\n\n- Resource\nRepresents a single item that is designated by a URL.\n\n - Name (title/label)\n - Category (1 or more)\n - URL\n - Short\n - Full\n - Featured\n - Approved\n - SubmittedBy\n - ImgThumb\n - ImgLarge\n - FaviconUrl\n - Tags\n - Related\n - IsFree\n - Rating\n - DateCreated\n\n- Category (topics)\nRepresents a topic/subject/bucket by which any Resource can be associated. \n\n- Name\n- Resources (1 or more)\n- Description\n- ImgThumb\n- ImgLarge\n\n- App\nContains app-wide configaration options and global content.\n\n\nFrontend\n===\n\nThe frontend is currently built with ReactJs and Bootstrap 4. The React app contains the \nbusiness logic, and performs API calls to the Airtable database.\n\nReact app structure\n---\n\n```\n--- /src\n------- /components\n------- /layouts\n------- /routes\n------- /views\n---------- /category\n---------- /dashboard\n---------- /resource\n------- airtable.js\n------- app.js\n------- conf.json\n------- env.json\n------- helpers.js\n------- index.js\n```\n\n\nGetting Started\n===\n\n- At \u003chttps://airtable.com\u003e create account, and then \"Copy Base\": https://airtable.com/universe/exppC2xVnGVRRoC5i/airstack\n- Generate an API key: https://airtable.com/account\n\nIn dev environment:\n\n- Run `\u003e npm install --save-dev`\n- Edit the `env.json`, and enter your Airtable API settings\n- Run `\u003e npm start`\n\nTo build:\n===\n- Run `\u003e npm run build`\n\n\nGood to Know\n===\n\n- A Resource can be associated with multiple Categories\n- Resources can have 0 or more related Tags\n- Resources can have 0 or more related Resources\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemesguide%2Fairstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemesguide%2Fairstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemesguide%2Fairstack/lists"}