# Что такое StartupJS

StartupJS является кроссплатформенным фулстек фреймворком для создания реактивных приложений за считанные минуты. Из названия можно понять что основная идея этого продукта - упростить создание своего стартапа. Часто бывает так, что есть идея и хочется ее реализовать сейчас пока она живая, но перед лицом встает тяжелый стек технологий которые нужно освоить для создания сколько нибудь жизнеспособного приложения. А если нужен еще какой-то специфический функционал, то идея может попросту кануть в Лету. Так как нужно искать разработчиков которым необходимо объяснять идею и далеко не факт что у них сформируется образ хотя бы похожий на ваш. Именно здесь вступает в игру StartupJS, здесь достаточно знать javaScript и React, чтобы создать прототип для вашего стартапа и он будет реактивным, кроссплатформенным и адаптивным. Так же из коробки есть библиотека качественных UI компонентов, которые позволят собирать приложение как конструктор.


## Как пользоваться курсом

Вам нужно иметь базовые знания HTML, CSS, JavaScript и React, чтобы понять StartupJS.

В процессе прохождения курса вам будут показаны мини-упражнения, призванные проиллюстрировать возможности библиотеки. Более поздние модули основаны на знаниях, разобранных ранее, поэтому рекомендуется изучать StartupJS по порядку глав.

В каждой главе учебника будет кнопка 'Покажи мне', которую можно нажать, если при выполнении задания у вас возникли трудности. Постарайтесь использовать ее как можно реже. Вы будете учиться быстрее, если поймёте, куда должен быть вставлен тот или иной блок кода и собственноручно напечатаете его в редакторе. Поэтому старайтесь самостоятельно писать код, на каждом этапе. Также очень хорошая практика придумать что-то свое для отработки полученных навыков. Например в модуле рассказывается об обработчике кнопки и дано задание реализовать кнопку с заданным функционалом. Попробуйте подумать как бы вы применили в жизни эту кнопку, какой функционал понадобился бы именно вам и попробуйте реализовать это в рамках песочницы. Такой подход позволяет понять как работает тот или иной компонент, а не запомнить.

## Структура приложения

Так как в основе StartupJS лежит React - компонентный подход к разработке. То есть приложение состоит из одного или нескольких компонентов. Компонент — это многократно используемый автономный блок кода, который изолирует разметку, стили и поведение, которые связаны друг с другом.

Посмотрите на пример 'Hello, world!' в редакторе кода — так выглядит простейший компонент.

```jsx
import React from 'react'
import { observer } from 'startupjs'
import { H1 } from '@startupjs/ui'

export default observer(function FirstExample () {
  return(
    <H1>
      Hello, world!
    </H1>
  )
})
```

## Почему StartupJS?

StartupJS предоставляет вам самостоятельный комплекс для создания пользовательских приложений, вам не нужно досконально знать как заставить работать сервер, организовать взаимодействие с базой данных и как это в конце концов показать пользователю. StartupJS имеет удобные и быстрые компоненты для реализации каждого из этих шагов.

Если вы выбираете StartupJS, то вы получаете приложение работающие на web, ios, android платформах одинаково и реактивно.

Давайте шаг за шагом разберем создание TODOList приложения на StartupJS.
